in reply to Initializing iterations while benchmarking
You're right to be concerned. These are the results of your orignal on my system:
C:\test>786728-1.pl Rate three one two three 95432/s -- -13% -35% one 110191/s 15% -- -25% two 146082/s 53% 33% --
And these excluding the setup overhead:
C:\test>786728-2.pl Rate one two three one 6935150/s -- -0% -6% two 6965018/s 0% -- -5% three 7345874/s 6% 5% --
As you can see, the setup swamps the code under test and skws the results horribly.
Here's my version of the benchmark:
use strict; use warnings; use Benchmark; our @strings = qw(exception:tex exception:mex asdf tex:exception:mex); Benchmark::cmpthese( -5, { 'one' => q[ my @filtered = grep { /exception:(?!tex)/} @unfilter +ed; ], 'two' => q[ my @filtered = grep { /exception/ && !/tex/ } @unfil +tered; ], 'three' => q[ my @filtered = grep { /exception:/g && !/\Gtex/ } @u +nfiltered; ], });
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Initializing iterations while benchmarking
by ig (Vicar) on Aug 07, 2009 at 10:34 UTC |