In a current build, we have a bunch of small i18n libraries: 20 ucharuti.dll 46 chardet.dll 39 nslocale.dll 15 strres.dll 12 lwbrk.dll 132 total These could be combined into one dll, as they are related in function and are are critical to general operation of gecko... combining them will save 8-12k per DLL as well as reduce runtime DLL overhead of about 30k per DLL. (saving 32-48k on disk and 120k at runtime)
ok, for example on my release build, I combined chardet.dll and lwbrk.dll which were 56k and 28k respectively. the combined dll is 60k, saving 24k. (now obviously the nightlies are a bit smaller here, and will probably save slightly less)
continuing status: adding unicharutil (28k in my build) increased the DLL by 12k, another 16k saved.
ok, a final update: I combined all the DLLs together and in my release build, the combined size went down from 188 to 108k: before: 28 ucharuti.dll 48 nslocale.dll 28 lwbrk.dll 28 strres.dll 56 chardet.dll 188 total after: 108 i18n.dll so that's a savings of ~80k on my build, probably slightly less on a nightly. this is not to mention 4 fewer dlls. patch forthcoming
code issue, QA to email@example.com for now.
Created attachment 99744 [details] [diff] [review] combine 5 dlls into one Here's the full patch. Also see: http://lxr.mozilla.org/seamonkey/source/intl/chardet/src/nsCharDetConstructors.h http://lxr.mozilla.org/seamonkey/source/intl/locale/src/nsLocaleConstructors.h http://lxr.mozilla.org/seamonkey/source/intl/lwbrk/src/nsLWBrkConstructors.h http://lxr.mozilla.org/seamonkey/source/intl/strres/src/nsStrBundleConstructors.h http://lxr.mozilla.org/seamonkey/source/intl/unicharutil/src/nsUcharUtilConstructors.h http://lxr.mozilla.org/seamonkey/source/intl/build/ (all the files)
now I just need some reviews... anyone listening? :)
cc some i18n people roy, naoki, or brian - can I get a review? i18n.xml is a new mac project which just has all the C++ files that are in each of the current libraries.
Comment on attachment 99744 [details] [diff] [review] combine 5 dlls into one sr=bryner
Frank, I believe you know the most about the converters so would you care to review this?
*** Bug 49527 has been marked as a duplicate of this bug. ***
this isn't the converter library (uconv) - these are all the other i18n libraries.
why + deleteThisFile("Components", "gfx2.dll"); + deleteThisFile("Components", "gfx2.xpt"); is here? beside that , I think all other are fine. r=ftang
Comment on attachment 99744 [details] [diff] [review] combine 5 dlls into one r=ftang
Comment on attachment 99744 [details] [diff] [review] combine 5 dlls into one wait, how can this work ? Do you need to change the module file ? I see you take out the old module file, but don't you need to supply new module file ?
the files are already in the tree, as I indicated above. already checked in though, before I saw the above comments.
Comment on attachment 99744 [details] [diff] [review] combine 5 dlls into one r=ftang , please take care the gfx2 stuff I mentioned eariler