PHP профилирование с помощью microtime(): отрицательное время?

Для очень простого профилирования я использую microtime() как это:

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

Теперь вывод echo линия кажется совершенно случайной, то есть я ожидал колебаний, но не ожидал появления отрицательных чисел.

Однако типичный результат содержит ~ 1/3 отрицательных чисел. Я подтвердил это на Solaris (PHP 5.0.x) и WinVista (PHP 5.2.3).

Какого черта здесь происходит? Я случайно изобрел машину времени?

1 ответ

Решение

Если вы хотите выполнять операции с тем, что возвращает microtime, вы должны установить для параметра "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);
}
Другие вопросы по тегам