Perlでベンチマークを取る
仕事で使ったのでメモ。
use Benchmark ':all'; my $testtimes = 999; my $looptimes = 99999; sub test1 { my $a = ''; foreach my $buf (0..$looptimes) { $a .= 'abcdefghijklmnopqrstuvwxyz'; } } sub test2 { my $a = ''; my @list = (); foreach my $buf (0..$looptimes) { $list[$buf] = 'abcdefghijklmnopqrstuvwxyz'; } $a = join('', @list); ''; } cmpthese( timethese( $testtimes, { 'TEST1' => test1, 'TEST2' => test2, } ) );
そう言えば、「Perlデータマンジング」に記載あったと思う。やっぱり、本だけでは身についてなかったことが証明された。
結果の見方。
Benchmark モジュールの使い方、結果情報の読み方