perlで実行時間を比較

標準ライブラリのBenchmark を使うのが手っ取り早いみたい

use Benchmark qw(cmpthese);
cmpthese( 実行回数, {
    'ラベル1' => \&関数名1 ,
    'ラベル2' => \&関数名2
});

関数自体はブラックボックスだが、具体例でいけば

use Benchmark qw(cmpthese);
cmpthese( 100, {
    'read_data' => \&read_data1 ,
    'read_data2' => \&read_data2
});

を実行すると、下記のような実行結果が表示される

Rate read_data read_data2
read_data 17.5/s — -88%
read_data2 143/s 714% —

1点、注意点がある。
プロセスのCPU使用時間を計測しているので、プロセス間通信やI/O待ちを含むベンチマークについては、cmptheseは正しい結果が出ないかもしれない。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。