その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

PHPでお手軽にベンチマークを取るためのツール BenchMarker を書いた

PerlにはBenchmark.pmというお手軽にベンチマークを取るためのライブラリがあって,これがまあ便利なわけです.
そこで,深い事情により最近書いているPHPにもこういうツールがあると便利だろうなーってことで書いたのがこのBenchMarkerになります.

moznion/BenchMarker · GitHub
moznion/benchmarker - Packagist

ノリと勢いでPackagistにもアップロードしましたのでお手軽にご利用いただけます.


使い方ですが,cmpThese()を例に取ると,

<?php
$code = function () use ($foo) {
    // do something
};

$benchmarker = new \Moznion\Benchmarker();
$benchmarker->cmpThese(10000, [
    "code A" => function () {
        // do something
    },
    "code B" => $code, // callableな変数も渡せる
]);

という風に,無名関数を渡してやると,

           Rate  code A  code B
code A  22571/s      --    -49%
code B  44656/s     98%      --

という感じで,各々のコードを10000回試行した比較結果がわかりやすい出力されて便利!!! という勢いです.


ほぼほぼPerlのBenchmark.pmからパクってきたので,知ってる人ならサクッと使えるのではないかという感じです.
詳しくはBenchMarkerのドキュメントかBenchmark.pmのドキュメントなんかを参照してくださいませ.