42

非常に単純なプロファイリングでは、次のmicrotime()ように使用します。

$now = microtime();
for (...) {
    // do something
    echo microtime() - $now;
    $now = microtime();
}

これで、行の出力はecho完全にランダムに見えます。つまり、変動は予想していましたが、負の数が表示されるとは予想していませんでした。

ただし、典型的な結果には、負の数が 1/3 程度含まれています。これは、Solaris (PHP 5.0.x) と WinVista (PHP 5.2.3) で確認しました。

ここで一体何が起こっているのですか?偶然タイムマシンを発明したのでしょうか?

4

1 に答える 1

69

マイクロタイムによって返されたものに対して操作を実行する場合は、「get as float」パラメーターを true に設定する必要があります (デフォルトは false)。

http://www.php.net/manual/en/function.microtime.php

$now = microtime(true);
for (...) {
    // do something
    echo microtime(true) - $now;
    $now = microtime(true);
}
于 2010-04-09T12:02:03.240 に答える