GetTimeOfday関数は、秒数とマイクロ秒の2つの部分を含む、現在の時間のマイクロ秒レベル時間情報を返します。次の構造で連想配列を返します。
array(
"sec" => 2番数,
"usec" => 微2番数,
"minuteswest" => 現在のタイムゾーンとUTC時差,
"dsttime" => 夏時間の兆候
)
時差を計算するとき、主にSECとUSECの2つの値に焦点を当てます。
アイデアは次のとおりです。
2つの時点でGetTimeOfday(True)を呼び出してタイムスタンプを取得します(今回は、フローティングポイント数、秒 +マイクロ秒の精度を返します)。
開始時間を差し引いて秒単位で正確な差を取得し、小数点後のマイクロ秒レベルをサポートすることにより、開始時間を減算します。
<?php
// 開始時間を取得します
$start = gettimeofday(true);
// シミュレーションの時間式操作
usleep(500000); // 500ミリ2番
// 終了時間を取得します
$end = gettimeofday(true);
// 時差を計算します,2番単位のユニット,マイクロ2番をサポートします
$elapsed = $end - $start;
echo "実行時間:{$elapsed} 2番\n";
?>
このコードは、USLoop(500000)を使用して半秒遅延をシミュレートするため、約0.5秒出力されます。
Timeof(true)を取得することに加えて、フローティングポイント番号を返すことに加えて、 getTimeOfday()を使用して配列を返し、秒数とマイクロ秒の追加を自分で計算することもできます。
<?php
// 開始時間を取得します,配列フォーム
$start = gettimeofday();
// シミュレーションの時間式操作
usleep(200000); // 200ミリ2番
// 終了時間を取得します
$end = gettimeofday();
// 時差を計算します(2番 + 微2番)
$elapsed = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "実行時間:{$elapsed} 2番\n";
?>
この方法は、タイムスタンプのより柔軟な処理に適しています。
HTTPリクエストの応答時間を計算する必要がある場合は、 CurlとGetTimeOfdayを組み合わせることができます。
<?php
// 聞くURL(使用gitbox.netドメイン名として)
$url = "https://gitbox.net/api/example";
// 初期化curl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 開始時間を記録します
$start = gettimeofday(true);
// 执行聞く
$response = curl_exec($ch);
// 終了時間を記録します
$end = gettimeofday(true);
// 閉鎖curl
curl_close($ch);
// 計算時間がかかります
$elapsed = $end - $start;
echo "聞く {$url} 時間がかかる:{$elapsed} 2番\n";
?>
これにより、 gitbox.netインターフェイスを呼び出すという正確な時間のかかるプロセスが得られます。
GetTimeOfday(True)は、現在の時間 +マイクロ秒の浮動小数点表現を返し、使いやすい。
2つの時点の差を計算することにより、マイクロ秒レベルに正確になります。
パフォーマンステスト、コード実行時間統計、および時間のかかる分析を要求するのに適しています。
GetTimeOfDayを適切に使用すると、PHP時間の計算がより正確で効率的になります。