Shared libraries (was Re: Window system bashing (was Re: X11 bashing))
Richard Todd
rmtodd at servalan.uucp
Fri Apr 19 10:57:39 AEST 1991
mohta at necom830.cc.titech.ac.jp (Masataka Ohta) writes:
> mohta at necom830.cc.titech.ac.jp (Masataka Ohta) writes:
>>You may claim shared libraries reduces the amount of required memory.
>>But, even if you run all the command at the same time, total code
>>space consumed is only 24884KB (including non-library code). On the
>>other hand, if you run single X11 application, with shared library,
>>mere /lib/X11.a consumes 3.3MB of virtual (and often real, as libraries
>>tends to be scattered) memory.
3.3 MEG??? That seems to me to be *way* out of line with what I see.
Here's what the shared library module for libX11 is like on my system
(Mac IIx, 68030 based machine, X11R4 compiled with gcc and Coolidge's
shared library patches.) libX11_s is the actual shared library object file
that's mapped into the address space of any X client that wants to use the
shared lib:
% ll /usr/lib/X11/shlib/libX11_s
27930 488 -rwxr-xr-x 1 root root 244027 Mar 25 20:19 /usr/lib/X11/shlib/libX11_s*
And that's an unstripped binary; the actual size is:
% size -d /usr/lib/X11/shlib/libX11_s
Size of /usr/lib/X11/shlib/libX11_s: 141280
Section Size Physical Address Virtual Address
.text 107656 1240465408 1240465408
.data 28980 1240989696 1240989696
.bss 4644 1241018676 1241018676
That means that worst case, Xlib will take up ~120K of memory. That's
*120K*, not 3.3M. You're off by a factor of 30. (Even if we throw in
libXt, libXmu, and libXaw, that's still a total of only 483K, still a far
cry from 3.3M.) If standard MIT Xlib really compiles out to 3.3M on your
SONY NEWS workstation, remind me not to buy one to replace my Mac....
>If you run mwm, xdm and as many xterms as you want,
> text data bss dec hex
> 1007616 192512 27168 1227296 12ba20 /usr/bin/X11/mwm
> 413696 86016 27792 527504 80c90 /usr/bin/X11/xdm
> 585728 139264 39376 764368 ba9d0 /usr/bin/X11/xterm
>still, total text size is below 2MB.
Well, I don't have mwm (not being willing to pay OSF one grand to make my
windows look really ugly :-), but let's look at the memory sizes on my
Mac:
text data bss total
xterm: 146776 55804 32156 234736
xdm: 111004 27568 25272 163844
tvtwm: 150468 29884 30964 211316
So if we've got one of each client going (or more, considering that in any
decent Unix implementation the text is shared, and the data&bss usage for these
programs is considerably smaller than the text space), we've got ~600K for the
clients + ~480K for the shared libs, and add maybe 1M for the server, and
we've got a total memory usage for X of ~2M. Not exactly slim, but
better than the 3.3M you were claiming for just the libraries alone.
>So, shared library is NO solution even to reduce memory consumption of X11.
Seems to be doing good on my computer. And even leaving aside memory
considerations, compiling the entire X11R4 core client distribution with
shared libraries saved over 4M in disk space, just in not requiring every
client to contain a copy of the libraries. (There are a *lot* of clients in
the std. X11R4 distribution...)
--
Richard Todd rmtodd at uokmax.ecn.uoknor.edu rmtodd at chinet.chi.il.us
rmtodd at servalan.uucp
"Elvis has left Bettendorf!"
More information about the Comp.unix.wizards
mailing list