I was going to disagree, but continue reading to see why I'm not. My code is below, have I done something wrong?
#!/usr/bin/perl
use Benchmark;
sub double {
$teststring = '';
if( $teststring ne "" ) {
return 1;
} else {
return 0;
}
}
sub single {
$teststring = '';
if( $teststring ne '' ) {
return 1;
} else {
return 0;
}
}
timethese( 1000000, { double => 'double( )',
single => 'single( )' } );
Which gave these results on 3 consecutive trials
Benchmark: timing 1000000 iterations of double, single...
double: 3 wallclock secs ( 2.14 usr + 0.00 sys = 2.14 CPU)
single: 1 wallclock secs ( 1.86 usr + 0.00 sys = 1.86 CPU)
Benchmark: timing 1000000 iterations of double, single...
double: 1 wallclock secs ( 1.86 usr + 0.00 sys = 1.86 CPU)
single: 2 wallclock secs ( 1.92 usr + 0.00 sys = 1.92 CPU)
Benchmark: timing 1000000 iterations of double, single...
double: 1 wallclock secs ( 1.89 usr + 0.00 sys = 1.89 CPU)
single: 1 wallclock secs ( 1.86 usr + 0.00 sys = 1.86 CPU)
The way I understand the Benchmark module, system load at the time of benchmarking doesn't
influence the numbers. Is that statement correct? Does anybody know what's going on?