As of today, Mutter and GNOME Shell support Sysprof-based profiling.
Christian wrote a fantastic piece exposing what happened to Sysprof during this cycle already, and how does it look like now, so I’ll skip that.
Instead, let me focus on what I contributed the most: integrating Mutter/GNOME Shell to Sysprof.
Let’s start with a video:
When it comes to drawing, GTK- and Clutter-based applications follow a settled cycle drawing cycle:
- Size negotiation: position screen elements, allocates sizes;
- Paint: draw the actual pixels;
- Pick: find the element below the pointer;
What you see in the video above is a visual representation of this cycle happening inside GNOME Shell, although a bit more detailed.
With it, we can see when and why a frame was missed; what was probably happening when it occurs; and perhaps the most important aspect, we have actual metrics about how we’re performing.
Of course, there is room for improvements, but I’m sure this already is a solid first step. Even before landing, the profiling results already provided us with various insights of potential improvements. Good development tools like this result in better choices.