[EMAIL PROTECTED] wrote: >> Can you be specific about where the time is being spent? Loading libraries >> can be expensive no matter what. Is it possible that the delay is just more >> noticable to you because rather than taking the hit at startup (the dynamic >> loader links the libraries before calling main()) the load happens during >> execution of your program where it's more apparent? > > I'm using a low power ppc cpu and it spends 6seconds in > XPCOMGlueStartup. With FF2 libs , my web page comes up in 13s, with > xulrunner-1.9 my web page comes up in 22s.
Did your startup time change? That is, did loading gecko always cost 9 seconds, but we've moved it to a different place, or is this a completely new 9 second delay? > Reading this page > http://developer.mozilla.org/en/XPCOM_Glue > I would have think that there was a way to start my browser quicker > without having to call XPCOMGlueStartup/GTKEmbedGlueStartup. It was > what I understood according to the following text: > "Embedding code which wishes to use only frozen symbols and cannot > tolerate a load-time dependency on xpcom.dll should #define XPCOM_GLUE > 1 while compiling, and link against xpcomglue.lib. It should not link > against xpcomglue_s.lib or xpcom.lib." Your understanding is incorrect. We *always* have to load XPCOM. The difference is how we load it: Dependent glue: you link directly against libxpcom.so (this is called a load-time dependency). The dynamic linker does the loading for you at startup time. Functions are called directly. Embedding glue: you don't link directly against libxpcom.so. Instead, you programmatically load libxpcom.so and populate the functions you want to use as function pointers (using XPCOMGlueStartup and GTKEmbedGlueStartup). You're probably going to need to generate some profiles of the time spent in XPCOMGlueStartup. Providing more details about your setup would also help, for instance: * What OS? * What library model (ELF, Mach-O, etc) * What compiler, and what version? Does that compiler support hidden-visibility pragmas correctly? Proper support for ELF hidden-visibility pragmas was fixed in GCC 4.2... using and older version of GCC will definitely cause increased startup time because the dynamic linker will have to perform thousands of relocations when you load the gecko libraries. --BDS _______________________________________________ dev-embedding mailing list dev-embedding@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-embedding