3 Feb 2003 19:54
Decrease Win32 disk footprint by 700KB?
Tim Hill <tim2048 <at> aol.com>
2003-02-03 18:54:29 GMT
2003-02-03 18:54:29 GMT
Does anyone know why optimized Win32 Mozilla DLLs include "FPO" debug data? Is this stuff necessary for Talkback or any other reason? I was reading an old article by Matt Pietrek about shrinking the size of EXEs and DLLs (http://www.microsoft.com/msj/defaulttop.asp?page=/msj/archive/s572.htm) and looking at Mozilla's DLLs with the liposuction utility mentioned in the article (http://www.wheaty.net/downloads.htm). You can also list the data using dumpbin /FPO. According to the article: "Another type of debug information that you'll see in Microsoft compiler-produced executables is Frame Pointer Omission (FPO) information. FPO is used in conjunction with CodeView or PDB symbols; it assists the debugger in finding parameters and local variables for functions where the compiler hasn't generated a standard stack frame using the EBP register. FPO information can be quite large, so it should be removed (via a linker switch) before shipping." "Lastly, in Microsoft compiler-created executables you may see the so-called miscellaneous debug information. This region seems to always be 0x110 bytes in length and contains the name of the executable file that the linker created. If you rename the executable file, debuggers can use miscellaneous debug information to determine the original name of the file, and from that calculate the name of the associated PDB file. You get rid of miscellaneous debug info by doing a nondebug link of the executable file before you ship." So.. looking at some Mozilla DLLs... The content/layout DLL has about 200KB worth of FPO data. XPCOM.DLL has about 50KB. Add up the data in all the other DLLs and you have over 700KB (!) of FPO data in a standard nightly(Continue reading)
RSS Feed