Microtime глючит. Первый раз измеряет нормально. Потом - что-то непонятное.

  • Автор темы Автор темы general
  • Дата начала Дата начала

general

Новичок
Microtime глючит. Первый раз измеряет нормально. Потом - что-то непонятное.

Достаточно тяжелый скрипт. Подключается куча функций. Впрочем, не в этом дело.

Вызов микротайма для измерения скорости скрипта - стандартный:

PHP:
$time_start = microtime(1);

в конце скрипта:

PHP:
$time_end = microtime(1);
$time = $time_end - $time_start;
echo $time;

Первый раз, загрузив скрипт получаешь нормальное время. Типа "2.39958715439". Повторная загрузка скрипта (которая выполняется быстрее, т.к. подгружается кэш), выдает странный результат для микротайма типа такого "1272893505.8".

Причем, как на локальной машине, так и на unix-сервере.

Прошу, вобщем, помощи. Что это может быть?
 
Такое может получаться только по причине обнуления $time_start, попробуйте так.
PHP:
$GLOBALS["__time_start"]=(float)microtime(1);
...
$d_time=(float)microtime(1)-$GLOBALS["__time_start"];
 
Re: Microtime глючит. Первый раз измеряет нормально. Потом - что-то непонятное.

Автор оригинала: general
Достаточно тяжелый скрипт. Подключается куча функций. Впрочем, не в этом дело.

Вызов микротайма для измерения скорости скрипта - стандартный:

PHP:
$time_start = microtime(1);

в конце скрипта:

PHP:
$time_end = microtime(1);
$time = $time_end - $time_start;
echo $time;

Первый раз, загрузив скрипт получаешь нормальное время. Типа "2.39958715439". Повторная загрузка скрипта (которая выполняется быстрее, т.к. подгружается кэш), выдает странный результат для микротайма типа такого "1272893505.8".

Причем, как на локальной машине, так и на unix-сервере.

Прошу, вобщем, помощи. Что это может быть?
А ты попробуй round() до вывода
 
еще полезно попечатать $time_start сразу после создания и перед использованием
 
Сверху