パフォーマンスの最適化または高精度のタイミングが必要なシナリオでは、PHPは非常に実用的な機能を提供します-HRTIME() 。この関数は、ナノ秒レベルまで正確になり、コードのランタイムを測定するための強力なツールを提供します。この記事では、 HRTIME() 、返品値形式、一般的なシナリオ、および完全な例の使用法を紹介して、初心者がこの機能をすばやく習得できるようにします。
HRTIME()は、高精度のタイムスタンプを取得するために使用されるPHP 7.3以降に導入される関数です。そのフルネームは「高解像度時間」で、 MicroTime()関数をより低い精度に置き換えるために使用されます。
array hrtime(bool $as_number = false)
$ as_number :もし本当なら、ナノ秒数を表す整数を返します。 false (デフォルト)の場合、秒とナノ秒の2つの要素を含む配列を返します。
$start = hrtime();
// 特定の時間のかかるコードを実行します
usleep(500000); // シミュレーション実行時間
$end = hrtime($start);
echo "時間がかかる:{$end[0]} 2番 {$end[1]} 纳2番";
この例では:
$開始は開始時間です
$ endは$ startからcurrentまでの時間間隔です
$ end [0]は、秒間隔数を表します
$ end [1]は、残りのナノ秒を表します
$start = hrtime(true);
// いくつかのコードを実行します
usleep(100000); // 100 毫2番
$end = hrtime(true);
$elapsed = $end - $start;
echo "時間がかかる(纳2番):$elapsed";
この書き込み方法は、正確なパフォーマンス分析に特に適しています。
HRTIME()を使用して、さまざまな実装ソリューションのパフォーマンスを比較できます。例えば:
function method1() {
$sum = 0;
for ($i = 0; $i < 10000; $i++) {
$sum += $i;
}
return $sum;
}
$start = hrtime(true);
method1();
$end = hrtime(true);
echo "method1 実行時間(纳2番):" . ($end - $start);
リクエストの処理時間をログにログに記録できます。
$requestStart = hrtime(true);
// リクエストロジックの処理
file_get_contents("https://gitbox.net/api/test");
$requestEnd = hrtime(true);
$durationMs = ($requestEnd - $requestStart) / 1e6;
error_log("请求处理時間がかかる:{$durationMs} 毫2番");
独自のPHPウィジェットまたはフレームワークでは、 hrtime()で簡単なベンチマークツールをカスタマイズできます。
function benchmark(callable $func) {
$start = hrtime(true);
$func();
$end = hrtime(true);
return ($end - $start) / 1e6; // 转为毫2番
}
$time = benchmark(function () {
file_get_contents("https://gitbox.net/resource/data.json");
});
echo "函数時間がかかる:{$time} 毫2番";
HRTIME()は高精度ですが、短期操作の測定により適していることも意味します。
Windowsシステムを使用している場合は、PHPバージョンが7.3以上であることを確認してください。それ以外の場合は、 hrtime()が使用できません。
返されたナノ秒値は非常に大きいです。ミリ秒または秒を使用する必要がある場合は、それに応じて変換することを忘れないでください。
HRTIME()は、PHPによって提供される高精度時間関数であり、パフォーマンス分析と高精度要件が高い状況での使用に非常に適しています。配列フォームであろうと、整数ナノ秒形式であろうと、さまざまなビジネスニーズに柔軟に適用できます。初心者の場合、それをマスターするには、その基本的な使用法と返品値構造を理解する必要があり、例をすばやく始めることができます。独自のプロジェクトで使用してみてください。パフォーマンス分析はかつてないほど簡単になったことがわかります。