On 12.05.2011 09:37, Tor Lillqvist wrote:
Hi,

Is there any public discussion or documentation on the rebasing done at various 
stages in OOo? When building, in postprocess each DLL is rebased so that they 
have unique base addresses, and don't overlap if loaded at these addresses. But 
then in an installer custom action this is reverted (on non-server OSes) and 
each DLL is rebased back to the default 0x10000000. Why? And what is the 
intended use case of the rebaseoo and rebasegui programs?

Hi Tor,

Michael is right with his answer. We used a trick (implementation detail) of Windows 2003, XP, 2000 to improve the cold startup performance. Normally libs are on-demand paged into the memory which is slow with current harddisks (but not on SSD). If you use the same load address for all your libs the Windows loader has to load a clashing lib synchronously into memory to fix up all abs. addresses. This trick has some drawbacks, like Michael correctly described,

You can find more information about our performance findings on the OOo wiki page.
http://wiki.services.openoffice.org/wiki/Performance#Startup

More information about the rebase part with pros/cons can be found in this article:
http://wiki.services.openoffice.org/wiki/Performance/Reorder_Symbols_For_Libraries

rebasegui.exe is just a small application to find out if the libs have been optimized or not. rebaseoo.exe rebases/optimize all libs to the same address.

Regards,
Carsten
--
-----------------------------------------------------------------
To unsubscribe send email to [email protected]
For additional commands send email to [email protected]
with Subject: help

Reply via email to