Профилирование 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
Если вы хотите выполнять операции над тем, что возвращается микрочешью, вам необходимо установить для параметра "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);
}