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