resource consumption of shared libraries
Felix Lee
flee at cs.psu.edu
Sat Jun 22 04:40:04 AEST 1991
On a Sun-4 running SunOS 4.1.1, the null C program takes about 10k of
disk space when statically linked (-n -Bstatic). start calls exit()
which calls _cleanup() which brings in _flsbuf() which drags in
malloc() and friends.
When dynamically linked (-n -Bdynamic), the null program takes a
little over 1k of disk space.
So dynamic vs. static saves at least 8k of disk space per executable.
This savings may disappear if you use zmagic executables.
When running, the static null program requires 5 pages (8k each) of
memory: 2 text, 1 data, 1 bss, and 1 stack.
The dynamic null program requires at least 20 pages: 1 text, 1 data, 1
bss, 1 stack, 5 for ld.so, and 11 from libc.so.1.6. The number for
libc may be a little low, but presumably all of it is shared with any
number of other programs running on the same machine.
All these numbers are nearly meaningless. The null executable isn't
really very interesting or useful. It does show that stdio is quite
fat. Small programs like /bin/echo would be much larger if stdio
weren't shared.
--
Felix Lee flee at cs.psu.edu
More information about the Comp.unix.internals
mailing list