Closed Bug 17029 Opened 26 years ago Closed 25 years ago

I18n DLLs need to be combined

Categories

(Core :: Internationalization, defect, P2)

defect

Tracking

()

VERIFIED DUPLICATE of bug 49527
mozilla0.9

People

(Reporter: sfraser_bugs, Assigned: tetsuroy)

References

Details

(Keywords: intl, perf)

Startup data show that the following components are all loaded at startup: first load second load (ms) component NSLOCALE_DLL 20004 2412 component CHARDET_DLL 18081 13731 component UCONV_DLL 17540 3633 component UCVLATIN_DLL 35121 4808 component UNICHARUTIL_DLL 17138 2433 component LWBRK_DLL 32427 3495 These DLLs should be combined where possible to reduce loading times. And additional DLLs that could be logically combined should be too; these possibly include: ucvlatinDebug.shlb ucthDebug.shlb ucvcnDebug.shlb ucvjaDebug.shlb ucvkoDebug.shlb ucvtw2Debug.shlb ucvtwDebug.shlb
Summary: I18n DLLs need to be combined → [Perf] I18n DLLs need to be combined
Blocks: 17033
What is the criteria to decide which one should be combine and which one should not ? We divid them into different DLL because we want to make sure we are COMPONMENTIZED so later we can only update one samll DLL in the minor release instead of a big one. Combine them simply DECOMPONENTIZED it. All those ucv*.dll contains unicode converters for different language group. The ucvlatin one is a must to have. The rest of them could be optional install, depend on the usage of the user. For example, a Korean users who never need to use Japanese/Chinese do not need to install ucvtw/ucvtw2/ucvja at all. In the other hand, we are willing to combine them if you folks have a reasonable general DLL criterian on paper and everyone agree with it. (Say, all the DLL which have size < 200 K should be combined with others, etc)
Combining components wont DECOMPONENTIZE them. A component is still a component. A Module is a packaging of many components. Putting more components into a package doesnt break componentization. For eg. Say you combined all these dlls. Then later wanted to replace only ucth component. Then you could ship the dll completely again or ship a ucth.so that would redirect all creation of ucth to itself and effectively disable the ucth in the combined dll.
Assignee: ftang → bobj
Priority: P3 → P2
Target Milestone: M12
bob, I am over loaded in my plate. Please find a owner for this bug. Thanks.
Another related issue- How about installer ? Currently, installer need to use strres for localization. strres depend on Necoko and uconv and ucvlatin to do Character Set conversion and nslocale for locale switching. If we build all these together, then we will blow the installer....
Ulrich Drepper (drepper@cygnus.com) was interested in helping convert the libraries over to using iconv() in glibc to reduce the loading overhead. You should look at that kind of solution as well as repackaging.
sfraser: Why this is a Mac only problem? Can we imporve the DLL loading on Mac to solve this instead of reduce the # of dll ?
Mac seems to suffer most from having to load multiple DLLs, but it's an issue on every platform. In addition, more DLLs == higher enumeration overhead for the components directory. See my posts on .performance for details.
Target Milestone: M12 → M13
Not for dogfood, so pushing out for now.
Target Milestone: M13 → M14
move to M14
Keywords: perf
Summary: [Perf] I18n DLLs need to be combined → I18n DLLs need to be combined
Moving "perf" to keyword field. This is the are we use now :-)
jbetak, Please work with ftang and me on, before starting on this bug.
Assignee: bobj → jbetak
Status: ASSIGNED → NEW
Since it's more of a Mac issue, reassigning back to ftang for further investigation.
Assignee: jbetak → ftang
Status: NEW → ASSIGNED
Move to M20 unless someone have strong opinion that we have to fix this in M14 and give me a subjective measurement about how small of a dll need to be combined. (in term of number of K or number of classes)
Target Milestone: M14 → M20
Keywords: intl
This should be a XP decision. Reassign this to yokoyama and mark this as ALL.
Assignee: ftang → yokoyama
Status: ASSIGNED → NEW
OS: Mac System 8.5 → All
Updating the target milestone.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.8
Target Milestone: mozilla0.8 → mozilla0.9
*** This bug has been marked as a duplicate of 49527 ***
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
Verified as dup.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.