Считаем время выполнения скрипта Предводителев Сергей

advertisement
Считаем время выполнения скрипта
Предводителев Сергей
Вы наверняка замечали на некоторых сайтах внизу страницы надпись, что мол скрипт
выполнен или страница создана за столько-то секунд. И сейчас мы сделаем это средствами
PHP.
Для начала опишу функцию, с помощью которой мы и будем измерять время, microtime. Эта функция возвращает текущий UNIX timestamp с микросекундами. Вот
описание этой функции из документации к PHP:
string microtime (void)
Возвращает строку "msec sec", где sec это текущее время, измеренное в
секундах Unix Epoch (начиная с 0:00:00 January 1, 1970 GMT), а msec это
микросекунды. Эта функция доступна только в ОС, поддерживающих системный
вызов gettimeofday().
Обе части этой строки возвращаются в единицах секунд.
Эта функция возвращает значение типа string, а нам нужен тип float. Для
преобразования напишем небольшую функцию:
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
Эта функция выделяет из строки типа "msec sec" секунды и микросекунды, складывает
их как float и полученное значение возвращает.
Теперь в самом начале скрипта запоминаем текущее время:
$TIME_START = getmicrotime();
И в самом конце скрипта смотрим время и находим разность начального и текущего
времени:
$TIME_END = getmicrotime();
$TIME_SCRIPT = $TIME_END - $TIME_START;
Всё… в переменной $TIME_SCRIPT содержится время выполнения нашего скрипта.
Но при выводе это переменной мы получим примерно следующее:
0.31106710434
Чтобы красиво вывести это число воспользуемся функцией number_format, второй
параметр которой обозначает количество цифр после запятой:
number_format($TIME_SCRIPT,3,'.','');
И теперь мы получаем красивый вывод:
0.254
Вот что в итоге получилось у меня:
$TIME_START = getmicrotime();
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
…
…
…
<?
$TIME_END = getmicrotime();
$TIME_SCRIPT = $TIME_END - $TIME_START;
?>
<div align="center"><b>.::</b>
Скрипт выполнен
сек.
<b>::.</b>
</div>
за <?=number_format($TIME_SCRIPT,3,'.','');?>
Download