microtime
(PHP 4, PHP 5, PHP 7)
microtime — 現在の Unix タイムスタンプをマイクロ秒まで返す
説明
microtime
([ bool $getAsFloat
= false
] ) : mixed
microtime() は、現在の Unix タイムスタンプをマイクロ秒単位で返します。 この関数は、gettimeofday() システムコールをサポートする オペレーティングシステムでのみ使用できます。
パフォーマンスの計測には、hrtime() を使うことをお勧めします。
パラメータ
getAsFloat
true
を指定すると、microtime() は文字列ではなく float を返すようになります。詳細は、返り値の説明を参照ください。
返り値
デフォルトでは、microtime() は "msec sec"
形式の文字列を返します。ただし、sec
は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT)
からの経過秒数、msec
は sec
から経過したマイクロ秒数を秒単位で表したものです。
getAsFloat
を
true
に設定すると、microtime() は Unixエポック からの経過秒数を
マイクロ秒で正確になるように float で表したものを返します。
例
例1 microtime() でタイマスクリプト実行
<?php/** * PHP 5の動作を模擬する簡単な関数 */function microtime_float(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec);}$time_start = microtime_float();// しばらくスリープusleep(100);$time_end = microtime_float();$time = $time_end - $time_start;echo "Did nothing in $time seconds\n";?>
例2 PHP 5 におけるタイマスクリプト実行
<?php$time_start = microtime(true);// しばらくスリープusleep(100);$time_end = microtime(true);$time = $time_end - $time_start;echo "Did nothing in $time seconds\n";?>
例3 microtime() と REQUEST_TIME_FLOAT
の例 (PHP 5.4.0 以降)
<?php// ランダムな時間のスリープusleep(mt_rand(100, 10000));// PHP 5.4.0 以降は、REQUEST_TIME_FLOAT をスーパーグローバル $_SERVER から取得できるようになりました。// ここにはリクエスト開始時のタイムスタンプがマイクロ秒の精度で記録されています。$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];echo "Did nothing in $time seconds\n";?>