In an older blog entry I compared the complexity of Mozilla with that of Internet Explorer by looking at the components each linked to. Recently, comments to a Slashdot posting I made, noted that I was comparing the two products on different platforms and source with binary dependencies. I therefore set out to compare the binary dependencies of the two under Windows.
Using the Windows Process Explorer I obtained a list of the DLLs used by a freshly loaded Internet Explorer (version 6.0.2900.2180) and SeaMonkey (1.0.2). (I know, I should have used Firefox, but this is what I had handy.)
I found 30 DLLs used by both products:
advapi32.dll c_1252.nls clbcatq.dll comctl32.dll comres.dll ctype.nls
gdi32.dll imm32.dll kernel32.dll locale.nls lpk.dll msctf.dll msctfime.ime
msimtf.dll msvcrt.dll ntdll.dll ole32.dll oleaut32.dll rpcrt4.dll
shell32.dll shlwapi.dll sortkey.nls sorttbls.nls SynTPFcs.dll unicode.nls
user32.dll usp10.dll uxtheme.dll version.dll xpsp2res.dll
.
The Internet Explorer used another 30 DLLs that SeaMonkey didn't use
(
AcroIEHelper.dll apphelp.dll browselc.dll browseui.dll crypt32.dll
cryptui.dll cscdll.dll cscui.dll iexplore.exe imagehlp.dll index.dat
mlang.dll msasn1.dll mshtml.dll msi.dll msls31.dll msvcr71.dll
netapi32.dll olepro32.dll psapi.dll secur32.dll setupapi.dll shdoclc.dll
shdocvw.dll ssv.dll sxs.dll urlmon.dll userenv.dll wininet.dll
wintrust.dll wldap32.dll
).
Contrary to what I would expect from my earlier findings,
I found that SeaMonkey used even more unique DLL's than the Internet Explorer,
anther 61:
(
addrbook.dll appcomps.dll appshell.dll caps.dll chrome.dll comdlg32.dll
cookie.dll docshell.dll editor.dll embedcomponents.dll gkgfx.dll
gkgfxwin.dll gklayout.dll gkparser.dll gkwidget.dll hnetcfg.dll i18n.dll
imglib2.dll jar50.dll js3250.dll jsd3250.dll jsj3250.dll mork.dll mozz.dll
msgbsutl.dll msgimap.dll msglocal.dll msgMapi.dll msgnews.dll mswsock.dll
necko.dll nspr4.dll oji.dll palmsync.dll perms.dll pipboot.dll plc4.dll
plds4.dll profile.dll rdf.dll seamonkey.exe srchsvc.dll sroaming.dll
txmgr.dll typeaheadfind.dll uconv.dll universalchardet.dll webbrwsr.dll
winmm.dll winspool.drv ws2_32.dll ws2help.dll wshtcpip.dll wsock32.dll
xpc3250.dll xpcom.dll xpcom_compat.dll xpcom_compat_c.dll xpcom_core.dll
xppref32.dll
).
However, the number of DLLs isn't the whole story. I then set out to measure the size of the DLLs, which reflects the total code base on which each product depends. Here the results were the opposite. The total size of the DLLs which Internet Explorer loads is 44MB; the size of the DLLs for SeaMonkey is 11MB less: 33MB. (The sizes of the two executables 91kB and 147kB, respectively, are insignificant compared to the above figures.)
Significantly, SeaMonkey also opens eight jar files
( en-US.jar classic.jar toolkit.jar reporter.jar comm.jar US.jar
chatzilla.jar en-win.jar
) totalling another 8MB.
These however contain resources (images and strings) and not code.
The DLLs that the Internet Explorer uses can also contain resources,
so, although the new results indicate the SeaMonkey depends on less
code than the Internet Explorer,
the matter still requires more scrutiny.
Last modified: Tuesday, August 8, 2006 6:17 pm
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.