On Fri, 2004-05-28 at 16:39, Will Cohen wrote: > start profiling > note time > command-line invocation of application > <bunch of application initialization> > <call library function that indicates application is running> > <key function notes time, shutdown profiling> You could just profile this program: int main (int argc, char **argv) { gtk_init (&argc, &argv); exit (0); } The equivalent for GNOME is a bit more complex (and probably wastes a fair bit more time). It's probably a better measure if you create a window, rather than just the init, since some things are done lazily: int main (int argc, char **argv) { GtkWidget *window; GtkWidget *button; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); button = gtk_button_new_with_label ("Hello"); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show (button); gtk_widget_show_now (window); /* blocks in mainloop until window has been mapped by X server */ exit (0); } That should be a good measure of how long it takes GTK + X server to get a minimal window on the screen. One thing we know takes time is loading stock icons, so you could make the button have an icon to add profiling of that issue: gtk_button_new_from_stock (GTK_STOCK_OPEN); Havoc