#!/usr/bin/perl -- use strict; use warnings; use Benchmark 'cmpthese'; Main( @ARGV ); exit( 0 ); sub Main { #~ my $big = 'a' x 99999999; # out of memory for me :) my $big = 'a' x 9999999; cmpthese( -3, { 'U' => sub { Fundef($big,'bar'); return; }, 'R' => sub { Ffednu($big,'bar'); return; }, 'V' => sub { Fvaria($big,'bar'); return; }, }); } sub Fundef { my (undef, $x) = @_; my $blah = 0; if($x){ if($_[0]){ $blah=1; } } return; } sub Ffednu { my ( $x ) = $_[1]; my $blah = 0; if($x){ if($_[0]){ $blah=1; } } return; } sub Fvaria { my ($var, $x ) = $_[1]; my $blah = 0; if($x){ if($_[0]){ $blah=1; } } return; } __END__ #### $ perl5.6.1.exe bench.895401.pl Benchmark: running R, U, V, each for at least 3 CPU seconds... R: 2 wallclock secs ( 3.09 usr + 0.00 sys = 3.09 CPU) @ 977555.91/s (n=3024558) U: 4 wallclock secs ( 3.08 usr + 0.00 sys = 3.08 CPU) @ 957410.66/s (n=2946910) V: 4 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 1076184.20/s (n=3447018) Rate U R V U 957411/s -- -2% -11% R 977556/s 2% -- -9% V 1076184/s 12% 10% -- $ perl5.6.1.exe bench.895401.pl Benchmark: running R, U, V, each for at least 3 CPU seconds... R: 4 wallclock secs ( 3.27 usr + 0.00 sys = 3.27 CPU) @ 979082.06/s (n=3197682) U: 3 wallclock secs ( 3.02 usr + 0.00 sys = 3.02 CPU) @ 988797.75/s (n=2982214) V: 4 wallclock secs ( 3.08 usr + 0.00 sys = 3.08 CPU) @ 1055320.66/s (n=3248277) Rate R U V R 979082/s -- -1% -7% U 988798/s 1% -- -6% V 1055321/s 8% 7% -- $ perl5.6.1.exe bench.895401.pl Benchmark: running R, U, V, each for at least 3 CPU seconds... R: 2 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 995011.92/s (n=3172098) U: 2 wallclock secs ( 3.09 usr + 0.00 sys = 3.09 CPU) @ 952459.60/s (n=2946910) V: 2 wallclock secs ( 3.02 usr + 0.00 sys = 3.02 CPU) @ 1142910.48/s (n=3447018) Rate U R V U 952460/s -- -4% -17% R 995012/s 4% -- -13% V 1142910/s 20% 15% -- ######################################################## ######################################################## $ perl5.12.2.exe bench.895401.pl Rate U R V U 773636/s -- -12% -18% R 883140/s 14% -- -6% V 941514/s 22% 7% -- $ perl5.12.2.exe bench.895401.pl Rate U R V U 791225/s -- -7% -16% R 846669/s 7% -- -10% V 939247/s 19% 11% -- $ perl5.12.2.exe bench.895401.pl Rate U R V U 785108/s -- -7% -17% R 843697/s 7% -- -11% V 944078/s 20% 12% --