use Benchmark 'cmpthese';
cmpthese -1, {
'shift'=> sub {
my $x=shift;
my $y=shift;
my $z=shift;
return
},
'assign'=> sub {
my ($x,$y,$z)=@_;
},
};
__END__
Benchmark: running assign, shift, each for at least 1 CPU seconds...
assign: 2 wallclock secs ( 1.23 usr) @ 505470.78/s (n=622740)
shift: 3 wallclock secs ( 1.01 usr) @ 435373.52/s (n=440598)
Rate shift assign
shift 435374/s -- -14%
assign 505471/s 16% --
####
for (1..100) { ++$x; $x+=$y+=$z }
####
Benchmark: running assign, shift, each for at least 1 CPU seconds...
assign: 2 wallclock secs ( 1.08 usr ) @ 7097.97/s (n=7680)
shift: 1 wallclock secs ( 1.02 usr ) @ 6973.56/s (n=7120)
Rate shift assign
shift 6974/s -- -2%
assign 7098/s 2% --
Benchmark: running assign, shift, each for at least 1 CPU seconds...
assign: 2 wallclock secs ( 1.01 usr ) @ 7587.94/s (n=7679)
shift: 2 wallclock secs ( 1.08 usr ) @ 7592.04/s (n=8207)
Rate assign shift
assign 7588/s -- -0%
shift 7592/s 0% --