🙆♀️
【PHP】hrtime で処理時間を計測する
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