gcj mingw32 and java memory footprint.
Øyvind Harboe
oyvind.harboe@zylin.com
Mon Feb 17 19:14:00 GMT 2003
Perhaps the problem is not as bad as you think?
If you launch HelloSWT.exe from Mohan (5MB .exe + .dll),
the amount of physical memory it takes is 2MB according to
task manager.
Windows theory: if a dll (and an .exe is just a dll with some
conventions w.r.t. entry points, etc.) is loaded into two
seperate processes, but it is relocated to the same address,
then the memory is shared between the processes.
I.e. if your .exe is 12MB (mine is) and you launch it twice, then
the working set should be 12MB and not 24MB.
This general theory is complicated by cleverness in Windows, e.g.
does Windows know to rebase the swt-xxx.dll on the fly such
that it becomes shared without the .dll being rebased upfront?
Conclusion: the # of bytes the .exe/.dlls file takes up on disk
is far from the whole story.
Though, on the other hand: there is an esthetic problem with a
.exe file that is 12MB, but compresses to <1.5 :-)
Øyvind
More information about the Java
mailing list