perlの色々な関数や処理の実行時間をBenchmarkモジュールを使って計測・比較してみました。第2弾。
変数へのアクセス
use Benchmark;
$year = "2007";
$mon = "10";
$day = "27";
$date = "$year年$mon月$day日";
timethese 1_024_000, {
operation1 => sub {
print OUT "$year年$mon月$day日";
},
operation2 => sub {
print OUT $date;
},
};
●実行結果
Benchmark: timing 1024000 iterations of operation1, operation2…
operation1: 1 wallclock secs ( 0.98 usr + 0.00 sys = 0.98 CPU) @ 1039593.91/s
(n=1024000)
operation2: 0 wallclock secs ( 0.19 usr + 0.00 sys = 0.19 CPU) @ 5446808.51/s
(n=1024000)
(warning: too few iterations for a reliable count)
●評価
”too few iterations”がついていますが、実行時間の差は明らかです。3倍以上の差がつきました。
日付を何度も出力する場合には、あらかじめまとめておいた方がよさそうです。