Re: DLL rebasing in OOo on Windows

Carsten Driesner <[email protected]> Thu, 12 May 2011 14:35:06 +0200
Newsgroups gmane.comp.openoffice.devel.general
Message-ID <[email protected]>
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