[RFC] Un-staticise the toolchain

Erik Cederstrand erik at cederstrand.dk
Mon Apr 30 13:51:09 UTC 2012


Den 26/04/2012 kl. 22.30 skrev Chris Rees:

> On 26 April 2012 20:15, Matthew Seaman <m.seaman at infracaninophile.co.uk> wrote:
>> On 26/04/2012 20:01, Chris Rees wrote:
>>> hydra# cd /usr/ports && time make MAKE=~crees/bin/make-static index
>>> 
>>> Generating INDEX-9 - please wait.. Done.
>>> 729.770u 120.841s 7:45.10 182.8%        920+2676k 5251+116484io 7750pf+0w
>>> 
>>> hydra# time make MAKE=~crees/bin/make-dynamic index
>>> 
>>> Generating INDEX-9 - please wait.. Done.
>>> 771.320u 133.540s 8:07.83 185.4%        609+2918k 474+116484io 570pf+0w
>>> 
>>> We have a 10% slowdown (or 11% speedup, depending on your figures) when
>>> using a dynamically loaded make.
>> 
>> I don't think you can validly conclude much from just one sample of each
>> type.  Try repeating those tests enough that you can do some decent
>> statistics.
>> 
>> Oh, and you should probably either discard the first few results, or
>> else take pains to flush[*] the buffer cache between each run, so you
>> end up measuring the same thing repeatably.
> 
> Had I done the tests the other way around, I may agree with you, but
> the second test should benefit from any buffering, and it is *still*
> slower.
> 
> Look, I know it's not a perfect benchmark, it was just some food for
> thought-- a difference of 10% is pretty significant, and I don't think
> you can blame that on a solar flare.

Can anyone explain to me why the dynamically linked version is significantly slower? What are the extra steps involved compared to a statically linked binary?

Thanks,
Erik


More information about the freebsd-current mailing list