end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

perlのBenchmarkによるパフォーマンス計測

先週、CPUやメモリ、IOを消費していないにも関わらず、サーバのパフォーマンスが、グッと低下する現象が発生したので、今更、Benchmark のperldocを読んでみた。

使い方のポイントの一つは、COUNTの指定方法かも

http://search.cpan.org/perldoc?Benchmark
http://perldoc.jp/docs/modules/Benchmark-1.10/Benchmark.pod

Benchmark自体の使用方法は、ググれば、たくさん見つかります。
例えば、「timethis ( COUNT, CODE, [ TITLE, [ STYLE ]] )」内で引数:COUNTについて、次のように記載されていますが...

The COUNT can be zero or negative: this means the minimum number of CPU seconds to run. A zero signifies the default of 3 seconds. For example to run at least for 10 seconds:

つまり、COUNTはメソッド(関数)の実行回数を指定しますが、負の値を指定した場合、実行するCPU秒数の最低値を意味することになります。例えば、最低 10 秒実行するには、次の通り。

my $result = timethese(-10, {
    Name1 => sub { ... },
    Name2 => sub { ... } });

cmpthese($result);

COUNT=マイナス値をしていた方がよさそうな気がしますが、気のせいかな?

Benchmarkって、標準moduleなんですね?

$ corelist Benchmark
Benchmark was first released with perl 5

こちらも、今更、知りました。