The document discusses improving the cold startup performance of OpenOffice.org 3.2. It summarizes the improvements made in OO3.2 including reducing the number of libraries loaded at startup by merging libraries. It then discusses the PE file format and how merging two libraries reduces the number of files opened and amount of data read from disk. Test results showed merging 65 libraries into 10 in OO1.1 reduced the number of libraries loaded at startup from 68 to 24, improving the cold startup time.
36. Result on OO1.1/Symphony 1.x Merge count : 65 libraries => merged into 10 libraries. Libraries loaded in startup : before merge 68 => after 24 FAT32: NTFS: ThinkPad T41 P1.6G 768M Windows XP 'soffice.exe -writer' to start writer.
37. Detail implementation Merge : DLL1 + DLL2 = DLL2 1)Modify makefile of DLL1: don't generate DLL1; instead generate a static lib for it. 2)Modify d.lst of DLL1, deliver the static lib into solver. 3)Modify makefile of DLL2: make the static lib of DLL1 as a input of DLL2.. 4)Add export function name list of DLL1 into DLL2's list. 5)Modify all makefiles of modules which depend on DLL1, change the dependency from DLL1 import lib to DLL2 import lib. 6)Modify build.lst of DLL2: making DLL1 module get built before DLL2 module start build. 7)If DLL1 and DLL2 have global functions/variables which share same name, modify them. 8)If resource ID of DLL1 and DLL2 conflict, modify them. 9)If DLL1 and DLL2 are UNO component DLLs, need to modify the implementation code of UNO factory. 10) Modify scp, making DLL1 will not be installed.