Strange measurements when reproducing issue 5650

SomeDude lovelydear at mailmetrash.com
Fri Apr 27 07:09:18 PDT 2012


On Wednesday, 25 April 2012 at 17:37:33 UTC, H. S. Teoh wrote:
>
> First of all, differences as small as 20ms really should be 
> considered
> as background noise. The exact measurements depend on a lot of
> system-specific and environment-specific factors, such as OS 
> memory
> usage, CPU cache behaviour, disk activity & speed, the exact 
> points of
> context switches, etc.. If you really want to check for 
> substantial
> performance differences, you need to magnify your test case so 
> that
> differences are measured >5 seconds.
>
> Second, on my AMD hexacore 64-bit Linux system, the running time
> consistently measures between 0.57 or 0.58 seconds for both 
> cases. The
> exact figure changes between runs, and as far as I can tell, 
> there's no
> discernible difference between the two.
>
> Third, to make any timing differences stand out from the 
> background
> noise, I increased n to 20_000_000, and both versions of the 
> program
> consistently runs in about 11 seconds each time. There's no 
> discernible
> difference between the two.
>
> What all this means is that a single call to writeln does not 
> make
> enough difference to be measurable compared to the rest of the 
> program.
> It doesn't mean that the version with writeln is "faster", just 
> that the
> difference is too small and you're probably just seeing 
> background
> noise. If you put the writeln inside a loop, on the other hand, 
> you'll
> see a big difference, because now its cost is magnified by the 
> number of
> times the loop runs. (Say if you put it inside a 
> foreach(i;0..1000) at
> the end of the program, you'll see the difference when you 
> comment it
> out.)
>
> So I'd chalk it up to inherent measurement inaccuracies.
>
>
> T

Thanks, indeed, for n = 5_000_000, I observe the expected result, 
i.e the writeln version being almost 1 second slower than without.
Below 2_000_000, though, I consistently see the opposite on my 
machine, i.e the version with writeln being slightly faster. If 
it was background noise, it would be about equal, no ?



More information about the Digitalmars-d-learn mailing list