Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zephyr.ens.tek.com!tekgen!sail!terryl From: terryl@sail.LABS.TEK.COM Newsgroups: comp.unix.internals Subject: Re: Shared libraries are not necessary Keywords: ISC i386 shared libraries Message-ID: <9613@sail.LABS.TEK.COM> Date: 31 May 91 22:37:00 GMT References: <201@titccy.cc.titech.ac.jp> <1991May17.053735.2123@kithrup.COM> <210@titccy.cc.titech.ac.jp> <1991May21.170435.22610@kithrup.COM> <223@titccy.cc.titech.ac.jp> <4757@skye.ed.ac.uk> <264@titccy.cc.titech.ac.jp> Reply-To: terryl@sail.LABS.TEK.COM Organization: Tektronix, Inc., Beaverton, OR. Lines: 80 In article <264@titccy.cc.titech.ac.jp> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes: +Now, perhaps, it is time to show that shared libraries often increase +memory consumption. Yes, I actually do agree with what you said above; unfortunately, you really haven't shown what you claim. +If, as if often the case, we are running only one X applications, you +lose. Maybe in your idealized world that is true, but I can assure you out in the REAL world, MANY X applications are running at once, not one at a time. Here's a partial ps listing of a local workstation running X: 181 ? 0:00 xdm 184 ? 2:04 X 191 ttyp1 0:01 xterm 192 ? 0:00 sh 201 ? 0:00 sh 211 ? 0:01 xterm 214 ? 0:10 mwm 252 ? 0:32 xterm 253 ? 0:00 xterm 255 ? 68:19 xclock 256 ? 0:05 xeyes 261 ttyp4 0:00 csh 258 ttyp3 0:01 csh 259 ttyp2 0:01 csh 1783 ? 0:14 rlogind 1784 ttyp5 0:01 csh 1965 ttyp5 0:00 ps 1043 ttyp7 0:01 csh 1040 ? 0:03 xterm 1945 ttyp2 0:45 gdb I count 5 different X applications running (xdm, xterm, mwm, xclock, xeyes), plus the server (listed as X in the above listing). +In article <4757@skye.ed.ac.uk> richard@aiai.UUCP (Richard Tobin) writes: + +>bute% ls -l xvserver* +>-rwxr-xr-x 1 richard 139264 May 22 21:28 xvserver* +>-rwxr-xr-x 1 richard 1286144 Mar 11 18:01 xvserver.static* +>bute% size xvserver* +>text data bss dec hex +>32768 8192 5360 46320 b4f0 xvserver +>942080 131072 16376 1089528 109ff8 xvserver.static + +>How much is really shared? Obviously it depends on what other programs +>are being run. But we might well run several different xview programs +>simultaneously, and the saving in disk space is also substantial. + +I asked Richard the size of library shared. And lines below are his reply: +:bute% size /usr/local/lib/lib{xview,olgx,X11}.so* /usr/lib/libc.so* +:text data bss dec hex +:868352 73728 2544 944624 e69f0 /usr/local/lib/libxview.so.3.0 +:40960 8192 0 49152 c000 /usr/local/lib/libolgx.so.3.0 +:180224 24576 3584 208384 32e00 /usr/local/lib/libX11.so.4.2 +:442368 16384 0 458752 70000 /usr/lib/libc.so.1.5 +Thank you, Richard. + +According to his data, total text space required for xvserver is: + 940Kbytes without shared libraries +and + 1560Kbytes with shared libraries. You make one strange assumption here, and I'll ask you like you asked Richard: do you have ANY facts to back up the claim that you seem to making?? The claim is "If a shared library is used, ALL of the space of the shared library(at least the text) will be loaded in the executable image". I make this claim by adding together the text sizes of the shared libraries, along with the text size of the original object file, and that's my interpretation of what you are saying. +Though not all functions in 1.56Mbytes are actually called, most pages +are swapped in if at least one function in the same page is called. Again, I'll ask you to provide some facts (and preferably figures, too) to back up your claim "most pages ... same page is called". Given a reasonable virutal memory subsystem, I doubt that this is true.