🙆‍♀️

【PHP】hrtime で処理時間を計測する

2023/07/07に公開

hrtime は PHP 7.3 で追加された関数で従来の microtime よりも推奨される関数だそうです。

試しに文字列の長さを求めてみます。

test.php
$str = 'あいうえお';

var_dump(benchmark([
    'mb_strlen' => function() use($str) { mb_strlen($str); },
]));
<?php

function benchmark(array $callables, int $repeat = 100000): array {
    $ret = [];
    $save = $repeat;

    foreach ($callables as $key => $callable) {
        $start = hrtime(true);

        do {
            $callable();
        } while($repeat -= 1);

        $stop = hrtime(true);
        $ret[$key] = $stop - $start;
        $repeat = $save;
    }

    return $ret;
}

結果は次のように表示されます。

> php test.php

array(1) {
  ["mb_strlen"]=>
  int(11835053)
}

Discussion