PHPの処理速度の計測方法


はじめに

PHPで書かれたコードの処理速度を計測したい。
調べるとmicrotimeを使った方法が出てきたが、マニュアル

パフォーマンスの計測には、hrtime() を使うことをお勧めします。

と書いてあったのでhrtimeを使って実施します。

コードの実施例

<?php
$start = hrtime(true); // 計測開始時間

// 計測したい処理

$end = hrtime(true); // 計測終了時間

// 終了時間から開始時間を引くと処理時間になる
echo '処理時間:'.($end - $start).'ナノ秒'; 
?>

hrtimeについて

hrtimeはPHP7.3から新しく追加された関数です。

説明

任意のタイミングから計測したシステムの高精度な時刻を取得します。
取得時刻の単位はナノ秒です。

使い方

<?php
var_dump(hrtime(true)); // 数値になる
var_dump(hrtime()); // [秒, ナノ秒]

// int(84687800869800)
// array(2) {
//    [0]=>
//    int(84687)
//    [1]=>
//    int(800855000)
// }
?>

その他

プラットフォームによって時刻の取得方法が異なります。

  • Windows → QueryPerformanceCounter
  • Linux等 → clock_gettime
  • iOS     → mach_absolute_time
  • HP-UX     → gethrtime
  • AIX     → read_wall_time

参考・引用

php マニュアル
PHPでナノ秒を計る