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);
}