Rhythm & Biology

Engineering, Science, et al.

Benchmark

perl使ってて、あまりパフォーマンスを気にしたことがありませんでした。とにかく覚えるのに必死でしたから。
ようやく自分のなかで余裕も出てきて、パフォーマンスあたりも気にしていこうかな、と。そこでまずはベンチマークの取り方の勉強。Benchmarkモジュールを使えば簡単ですね。

use Benchmark qw/timethese cmpthese/;

my $process1 = sub {
  my $a = 1 + 2;
};

my $process2 = sub {
  my $a = 3 * 4;
};

my $count = 1000000;
my $comp = timethese(
  $count,
  {
    process1 => $process1,
    process2 => $process2,
  }
);
cmpthese $comp;

timethese関数に試行回数とハッシュリファレンスを渡します。このハッシュリファレンスの値には、実行するサブルーチンのリファレンスを指定します。
あとはこれを実行するだけでベンチマーク結果が表示されます。

加算と乗算だけでも結構な差が出ますね。