diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-07-22 11:36:29 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-07-22 12:51:32 -0400 |
commit | a10b1b7341822ca751709459f1e21a31641df9a2 (patch) | |
tree | 2afeaa563bb382796598c3af7180abb53f54cb4c /gtk/gtkmain.c | |
parent | 02c62267413c2c187a77f7f91610690f8b0a5d0a (diff) | |
download | gtk+-a10b1b7341822ca751709459f1e21a31641df9a2.tar.gz |
Add more sysprof marks
Add a few more marks during gtk_init to figure out where
our startup time goes, and avoid the sysprof initialization
from distorting the first mark.
Diffstat (limited to 'gtk/gtkmain.c')
-rw-r--r-- | gtk/gtkmain.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index accaee07c1..9a7b36eb05 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -26,6 +26,7 @@ #include "gdk/gdk.h" #include "gdk/gdk-private.h" +#include "gdk/gdkprofilerprivate.h" #include "gsk/gskprivate.h" #include "gsk/gskrendernodeprivate.h" #include "gtknative.h" @@ -520,10 +521,13 @@ static void do_post_parse_initialization (void) { GdkDisplayManager *display_manager; + gint64 before G_GNUC_UNUSED; if (gtk_initialized) return; + before = GDK_PROFILER_CURRENT_TIME; + gettext_initialization (); #ifdef SIGPIPE @@ -533,21 +537,28 @@ do_post_parse_initialization (void) gtk_widget_set_default_direction (gtk_get_locale_direction ()); gdk_event_init_types (); + gsk_ensure_resources (); gsk_render_node_init_types (); _gtk_ensure_resources (); + gdk_profiler_end_mark (before, "basic initialization", NULL); + gtk_initialized = TRUE; + before = GDK_PROFILER_CURRENT_TIME; #ifdef G_OS_UNIX gtk_print_backends_init (); #endif gtk_im_modules_init (); gtk_media_file_extension_init (); + gdk_profiler_end_mark (before, "init modules", NULL); + before = GDK_PROFILER_CURRENT_TIME; display_manager = gdk_display_manager_get (); if (gdk_display_manager_get_default_display (display_manager) != NULL) default_display_notify_cb (display_manager); + gdk_profiler_end_mark (before, "create display", NULL); g_signal_connect (display_manager, "notify::default-display", G_CALLBACK (default_display_notify_cb), @@ -580,6 +591,9 @@ gtk_init_check (void) if (gtk_initialized) return TRUE; + if (gdk_profiler_is_running ()) + g_info ("Profiling is active"); + gettext_initialization (); if (!check_setugid ()) |