css: Add a profiler mark around theme loading
authorMatthias Clasen <mclasen@redhat.com>
Thu, 23 Jan 2020 02:29:47 +0000 (21:29 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 23 Jan 2020 04:44:01 +0000 (23:44 -0500)
This is also time spent before the first frame.

gtk/gtkcssprovider.c

index 5201e00c0af7a539be8f9c1dfafbb134f64f1306..f97776d801533d5e07f20f16d593eb6165d23795 100644 (file)
@@ -42,6 +42,7 @@
 #include <stdlib.h>
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
+#include "gdk/gdkprofilerprivate.h"
 #include <cairo-gobject.h>
 
 /**
@@ -1004,6 +1005,8 @@ gtk_css_provider_load_internal (GtkCssProvider *self,
                                 GFile          *file,
                                 GBytes         *bytes)
 {
+  gint64 before = g_get_monotonic_time ();
+
   if (bytes == NULL)
     {
       GError *load_error = NULL;
@@ -1050,6 +1053,13 @@ gtk_css_provider_load_internal (GtkCssProvider *self,
 
       g_bytes_unref (bytes);
     }
+
+  if (gdk_profiler_is_running ())
+    {
+      char *uri = g_file_get_uri (file);
+      gdk_profiler_add_mark (before * 1000, (g_get_monotonic_time () - before) * 1000, "theme load", uri);
+      g_free (uri);
+    }
 }
 
 /**