GTK supports profiling with sysprof. It exports timing information about frameclock phases and various characteristics of GskRenders in a format that can be displayed by sysprof or GNOME Builder.

A simple way to capture data is to set the GTK_TRACE environment variable. When it is set, GTK will write profiling data to a file called gtk.PID.syscap.

When launching the application from sysprof, it will set the SYSPROF_TRACE_FD environment variable to point GTK at a file descriptor to write profiling data to.

When GtkApplication registers with D-Bus, it exports the org.gnome.Sysprof2.Profiler D-Bus interface that lets sysprof request profiling data at runtime.