|
From: | Brandon J. Van Every |
Subject: | Re: [Chicken-users] Nursery sizing considered stupid |
Date: | Thu, 20 Jul 2006 09:26:10 -0700 |
User-agent: | Thunderbird 1.5.0.4 (Windows/20060516) |
John Cowan wrote:
A 15% improvement in efficiency, easily achieved, is certainly well worth making. Here's what nursery sizing showed me today under the CMake build (the system was otherwise idle except for the usual transient network events): -- Determining the best stack size. -- Running 10 samples per given stack size. -- Requiring a 5% performance improvement to override the default stack size. -- default stack size 131072 bytes -> 153.300 ms -- stack size 16K -> 142.300 ms -- stack size 24K -> 237.700 ms -- stack size 32K -> 207.900 ms -- stack size 48K -> 135.900 ms -- stack size 64K -> 145.500 ms -- stack size 128K -> 129.500 ms -- stack size 256K -> 128.300 ms -- stack size 512K -> 131.300 ms -- stack size 1024K -> 125.200 ms -- Using a stack size of 131072 bytes. It shows a 15% performance improvement over the default stack size. Brilliant! 128K shows a 15% improvement over the default 128K!
I must have screwed the logic when I shuffled the location of DEFAULT_TARGET_STACK_SIZE around. I will fix it shortly.
I'm really wondering about that 24K reading you got. I have trouble trusting it.
There is something very, very wrong with all this. IMNSHO, Chicken should pick a stack size like 128K and stick to it; the measurement procedure is so grossly unreliable that it's just as likely to choose something seriously suboptimal. People who actually need a different value can use a configuration option or else -:s.
I mostly agree. So far I've seen no evidence whatsoever that nsample is anything but a randomizer. There's huge variance in the results if the sampling rate is low, such as the 3 samples performed by the ./configure build. When larger numbers of samples are used, at least on my box the results converge to a miniscule % difference. That's why I (tried to) implement the 5% threshold requirement. That way, in practice, builds will keep using the default for the most part. My only point of disagreement, is I'd like to see more actual field tests on more machines before making a final pronouncement that nsample is worthless. It's certainly worthless on my box.
What era was nsample written in? Oftentimes, benchmarks get written for stuff, but hardware moves on, rendering them less relevant. Like, maybe it was a great benchmark for a 486 or something.
Cheers, Brandon Van Every
[Prev in Thread] | Current Thread | [Next in Thread] |