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

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>
Скрипт выполнен за <?=number_format($TIME_SCRIPT,3,'.','');?> сек.
<b>::.</b>
</div>
Список литературы
Для подготовки данной работы были использованы материалы с сайта
http://coderpro.fatal.ru/
Download