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