builder: Add profiler marks for parsing
authorMatthias Clasen <mclasen@redhat.com>
Wed, 29 Jan 2020 14:49:56 +0000 (15:49 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 30 Jan 2020 09:04:38 +0000 (10:04 +0100)
This is useful to understand what ui files take
long to load.

gtk/gtkbuilderparser.c

index ff38c494055c2a03aac297df14f57e86224d0a22..7b781c17d12bdf173694d26648b7a0b6eb076388 100644 (file)
@@ -26,6 +26,7 @@
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
 #include "gtkversion.h"
+#include "gdkprofilerprivate.h"
 
 #include <gio/gio.h>
 #include <string.h>
@@ -1548,6 +1549,7 @@ _gtk_builder_parser_parse_buffer (GtkBuilder   *builder,
   const gchar* domain;
   ParserData data;
   GSList *l;
+  gint64 before = g_get_monotonic_time ();
 
   /* Store the original domain so that interface domain attribute can be
    * applied for the builder and the original domain can be restored after
@@ -1622,4 +1624,6 @@ _gtk_builder_parser_parse_buffer (GtkBuilder   *builder,
 
   /* restore the original domain */
   gtk_builder_set_translation_domain (builder, domain);
+
+  gdk_profiler_add_mark (before * 1000, (g_get_monotonic_time () - before) * 1000, "builder load", filename);
 }