Subject: Re: Strange libc shared vs. unshared performance
To: None <port-sparc@netbsd.org>
From: Daniel Carosone <danielce@ee.mu.oz.au>
List: port-sparc
Date: 11/26/1994 11:55:18
I decided it was time to gather a single coherent set of data.


Chuck Cranor writes:

 > so, netbsd-dynamic-singleuser was not slowed?  i'm still confused
 > as to the source of this annoying slowness.

I'm sorry it took so long, Chuck, I promised to do this a while ago. I
actually ran these tests early last week, but haven't gotten around to
tabulating the results until now.

Tests were run on a Sparc 1+, 16Mb ram, running 1.0. I ran netbsd and
sunos executables, dynamically and statically linked, with the machine
in single- and multi-user mode, with the cache enabled and disabled,
all combinations.  I ran the dhry program five times for each case,
the table below gives the average for the "dhrystones per second" for
each. There was very little variance within each group, and for the
nocache groups, almost none (sometimes differences were all in the 5th
significant digit).

one other possibly-important difference: the gcc on the sunos machine
where the sunos executables were compiled was v2.5.8.  I will try
again with 2.6.2 on both machines sometime.

                single/cache multi/cache single/nocache multi/nocache
netbsd/dynamic :   36911.6  :  26201.3  :    6151.85   :   6143.13   :
netbsd/static  :   37110.0  :  37065.5  :    6228.19   :   6228.56   :
 sunos/dynamic :   36786.4  :  36672.3  :    6074.97   :   6073.14   :
 sunos/static  :   37190.4  :  37082.2  :    6150.77   :   6154.35   :


Now, spot the odd one out. Yes, that's really meant to be a 2. This
data makes it abundantly clear that there is only a single problem
case among the ones I tried. It also makes it clear how damn slow the
box is without its cache. I accidentally left it running the cacheless
kernel, and came home from the pub one night later in the week just as
mattie was rebooting it remotely with the message `Neeeed cache..' :-)

I'm confused as to why single/multi user should make a difference,
except for the number of programs running - or perhaps that several
programs are using the same shared library?  As a simple test, I tried
running another dynamically linked program in the background, but it
made no difference.  This looks like the place for further
investigation - how much do you have to add to a single-user state
machine before the problem shows up?

--
Dan.