getTimeOfday()は、秒単位やマイクロ秒を含む、現在の詳細を返すPHPの組み込み関数です。その返品値は、次のキーを含む配列です。
SEC :現在の時刻の秒数(UNIXエポックから計算)
USEC :現在の秒のマイクロ秒数
これらの2つの値により、高精度のパフォーマンステストに適したTime()またはMicroTime()よりも正確なタイムスタンプを取得できます。
基本的なアイデアは、コードが実行される前後の時差を記録し、実行時間を計算します。
<?php
// 開始時間を記録します
$start = gettimeofday();
// テストするコードは次のとおりです
usleep(500000); // アナログ遅延 0.5 2番
// 終了時間を記録します
$end = gettimeofday();
// 時差を計算します,单位为2番(含微2番)
$duration = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "コード実行時間:{$duration} 2番";
?>
上記のコードで:
getTimeOfDay()は、連想配列を返します。
それぞれ秒の差とマイクロ秒の差を計算し、それを秒に変換します。
最終$の期間は、コードが実行されている正確な秒数を表すフローティングポイント番号です。
関数のパフォーマンスをテストしたいとします。
<?php
function testFunction() {
$sum = 0;
for ($i = 0; $i < 1000000; $i++) {
$sum += $i;
}
return $sum;
}
$start = gettimeofday();
$result = testFunction();
$end = gettimeofday();
$duration = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "関数の実行結果:$result\n";
echo "実行時間:{$duration} 2番\n";
?>
この例では、 TestFunction()関数が実行され、関数のパフォーマンスを評価するために実行される時間を測定します。
高精度:マイクロ秒レベルの時間測定、 time()よりも正確です。
シンプルで使いやすい:返品値は配列であり、秒とマイクロ秒の情報が明確です。
依存関係なし:PHPビルトイン関数、拡張機能は必要ありません。
GetTimeOfday()によって返される時間は、サーバーの現在の時間であり、システム時間調整の影響を受ける可能性があり、介入因子または分布の時間比較には適していません。
非常に短いコードセグメントの場合、実行時間は非常に小さく、複数回実行してより安定した結果の平均値を計算することをお勧めします。