On Sun, 2004-05-30 at 05:21, Mark McLoughlin wrote:
I'm not sure there is a reliable way to detect when an application has finished startup. Perhaps the first time the main loop goes idle would be a good indicator but I think you have difficulty distinguishing between that case and the case of the app blocking on the result of a CORBA call.
For nmany applications, a pretty good good (intrusive) way to figure out when the app is up on the screen and painted is to put a g_idle_add() into an expose handler; applications will typically handle all exposes before going idle again.
To give you an idea of where a GNOME application starting up spends its time see this:
http://mail.gnome.org/archives/desktop-devel-list/2004-April/msg00360.html
The only things really specific to the panel in this is the loading of main menu and applets/launchers.
I believe this is 'strace -tt' measurement? My experience is that that can be quite distorting because it greatly magnifies the per-syscall overhead.
Regards, Owen