Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!decwrl!hplabs!hp-pcd!uoregon!omepd!mipos3!td2cad!tp From: tp@td2cad.intel.com (t patterson) Newsgroups: comp.unix.wizards,comp.lang.c,comp.unix.questions Subject: Re: New feature of Ultrix C compilers Message-ID: <603@td2cad.intel.com> Date: Sun, 27-Sep-87 19:46:18 EDT Article-I.D.: td2cad.603 Posted: Sun Sep 27 19:46:18 1987 Date-Received: Wed, 30-Sep-87 01:17:20 EDT References: <867@sask.UUCP> <6473@brl-smoke.ARPA> Organization: Intel CTD SC-9 Lines: 101 Keywords: VAX C Summary: numbers for Ultrix 2.0 Xref: mnetor comp.unix.wizards:4561 comp.lang.c:4616 comp.unix.questions:4309 In article <6473@brl-smoke.ARPA>, gwyn@brl-smoke.ARPA (Doug Gwyn ) writes: > In article <867@sask.UUCP> coleman@sask.UUCP (Geoff Coleman @ ) writes: > >The new executables were ~2.5 times the size of the old one. > > You didn't provide much information -- It would have been helpful > to know if the size increase was in the .text PSECT or .data. > ... here's a few numbers to gnaw on... Ultrix 2.0 binaries do seem to have gotten markedly bigger than the 1.2 binaries. Note that /lib/libc.a on 2.0 is 262760 bytes and is only 167076 on Ultrix 1.2. I suppose most of the difference is the added NFS and YP code (leading to NFS-bloat just like in 4.3 + NFS). My seat-of-the-pants feeling is that Ultrix 2.0 has made most of the executables for my programs 10-20 % bigger. But why listen to me? I did a 'size /bin/*' on an Ultrix 1.2 and on an Ultrix 2.0 system; for each column output by 'size', I calculated size for Ultrix 2.0 - size for Ultrix 1.2. For example, in the listings below, /bin/ls has 21 K more text space in Ultrix 2.0 than in 1.2 and about 5 K more data space ( doing ls -l reveals 2.0 ls to be 43 K and 1.2 ls to be 16 K, so the difference seems to agree with actual file size). Interpret the results as you wish -- if I had Ultrix 2.0 source now, I'd have a better idea how much DEC monkeyed with the programs -- still, I'd guess that some of the size changes are due to calling library routines with NFS-related code in them. (of course, the contents of /bin are not perfectly representative samples of code, but you all know what these programs do, so you can apply your own mental extrapolations to your own code...) and the new DEC vcc is entirely another issue... Differences between 2.0/1.2 as reported by /bin/size (bytes of bloat) text data bss dec /bin/ls 21504 5120 28968 55592 /bin/mdtar 36864 8192 6220 51276 # tar was heavily modified /bin/tar 36864 8192 6220 51276 # by DEC (for the worse?) /bin/login 24576 4096 4960 33632 /bin/mail 22528 3072 6068 31668 /bin/su 22528 4096 1936 28560 /bin/chgrp 22528 3072 2576 28176 /bin/make 20480 5120 2540 28140 /bin/csh 21504 2048 3100 26652 /bin/who 19456 5120 1988 26564 /bin/ps 20480 3072 2172 25724 /bin/dd 5120 0 44 5164 # sharp break here; differences /bin/awk 2048 0 784 2832 # from here down are probably /bin/as 2048 0 84 2132 # insignificant /bin/passwd 0 0 1420 1420 /bin/adb 1024 1024 -664 1384 /bin/ar 1024 0 308 1332 /bin/diff 1024 0 304 1328 /bin/write 1024 0 124 1148 /bin/sed 1024 0 60 1084 /bin/sh 1024 0 8 1032 /bin/cp 1024 0 0 1024 /bin/nice 1024 0 0 1024 /bin/pwd 1024 0 0 1024 /bin/size 1024 0 0 1024 /bin/tee 1024 0 0 1024 /bin/ed 792 0 0 792 /bin/wall 0 0 380 380 /bin/pr 0 0 304 304 /bin/du 0 0 196 196 /bin/ld 0 0 188 188 /bin/ln 0 0 180 180 /bin/od 0 0 172 172 /bin/mt 0 0 112 112 /bin/mv 0 0 84 84 /bin/date 0 0 24 24 /bin/kill 0 0 12 12 /bin/[ 0 0 0 0 { cat, cc, chmod, cmp, echo, expr, hostid, hostname, mkdir, nm, rm, rmail, rmdir, strip, stty, sync, test, and time all had 0 size difference } /bin/df 1024 -1024 -12660 -12660 how I got this: rsh ctdove size '/bin/*' | grep -v 'not an object' >dove.sizes #dove is an Ultrix 2.0 uvax rsh ctdune size '/bin/*' | grep -v 'not an object' >dune.sizes #dune is an Ultrix 1.2 uvax join -j 6 dove.sizes dune.sizes | awk ' NF == 11 { print $1 \ "\t" $2-$7 "\t" $3-$8 "\t" $4-$9 "\t" $5-$10 }' | \ sort +4nr >foo vi foo # to straighten up columns and produce this output The only program which shrank appreciably is 'df'; it also appears to have been broken in 2.0. ("df /usr" or "df /any_file_system" keeps giving me same output as "df /" ) -- ..tp.. t patterson domain: tp%td2cad.intel.com@relay.cs.net path: {ihnp4,cbosgd,uunet}!wucs1!td2cad!tp {decwrl,hplabs,oliveb}!intelca!mipos3!td2cad!tp