This is perl, v5.8.8 built for i386-linux-thread-multi
Rate for_loop1 for_loop2 foreach_loop2 foreach_loop1 for_loop3 for_loop4 for_loop1 3463/s -- -24% -51% -51% -52% -52% for_loop2 4532/s 31% -- -36% -36% -37% -38% foreach_loop2 7055/s 104% 56% -- -1% -2% -3% foreach_loop1 7135/s 106% 57% 1% -- -1% -2% for_loop3 7190/s 108% 59% 2% 1% -- -1% for_loop4 7258/s 110% 60% 3% 2% 1% --
#!/usr/bin/perl use warnings; use strict; use Benchmark qw/cmpthese/; my @hoge = ( 1..1000); cmpthese(-5, { for_loop1 => sub { my $total = 0; for ( my $i = 0 ; $i < scalar @hoge ; $i++ ) { $total+=$hoge[$i]; } }, for_loop2 => sub { my $total = 0; my $cnt = 0; for(@hoge ) { $total+=$hoge[$cnt]; $cnt++; } }, for_loop3 => sub { my $total = 0; for (@hoge ) { $total+=$_; } }, for_loop4 => sub { my $total = 0; for my $i (@hoge ) { $total+=$i; } }, foreach_loop1 => sub { my $total = 0; foreach ( @hoge ) { $total+=$_; } }, foreach_loop2 => sub { my $total = 0; foreach my $i ( @hoge ) { $total+=$i; } }, });
タグ
このページへのコメント
BLhyRC Fantastic post.Much thanks again.