Время выполнения скрипта
Время выполнения скрипта
В
этой статье я расскажу о том, как засечь время выполнения вашего кода на PHP.
Наверняка
вы уже где-нибудь видели маленькую надпись внизу страницы, что-нибудь типа:
Page
generated in 0.325261 seconds
Вот
тоже самое можно сделать с помощью всего трех функций:
1)
Функция string microtime(void)
Возвращает
строку типа "msec sec",
где
msec - количество миллисекунд
и
sec - текущее время в секундах с начала эпохи UNIX (0:00:00 January 1, 1970
GMT)
Эта
функция работает только в операционных системах, поддерживающих системный вызов
gettimeofday().
2) Функция
array explode(string separator,
string string [, int limit])
Делит
строку string в соответствии с разделителем separator и записывает все части
(или не все, если указано количество частей limit) в массив, который функция
выдает в качестве результата.
3) Функция
void printf (string format [, mixed
args])
Эта
функция полностью аналогична своей C версии. Она выводит аргументы (args), по
заданному формату format
Параметры:
format
- строковый формат вывода данных
args
- аргументы, для форматирования
Итак,
теперь рассмотрим логику.
Что
нам нужно сделать ?
Нам
нужно перед выполнением кода, время которого мы хотим засечь, считать текущее
время. После выполнения кода мы опять должны будем считать текущее время и
вывести разницу.
Пишем
следующие строки в самом начале вашего PHP скрипта:
//Считываем
текущее время
$mtime
= microtime();
//Разделяем
секунды и миллисекунды
$mtime
= explode(" ",$mtime);
//Составляем
одно число из секунд и миллисекунд
$mtime
= $mtime[1] + $mtime[0];
//Записываем
стартовое время в переменную
$tstart
= $mtime;
Теперь
в самом конце, после кода, время выполнения которого нам надо засечь, пишем:
//Делаем
все то же самое, чтобы получить текущее время
$mtime = microtime();
$mtime = explode("
",$mtime);
$mtime
= $mtime[1] + $mtime[0];
//Записываем
время окончания в другую переменную
$tend = $mtime;
//Вычисляем разницу
$totaltime = ($tend - $tstart);
//Выводим
не экран
printf
("Страница сгенерирована за %f секунд !", $totaltime);
Обратите
внимание, что простой вывод с помощью print или echo в данном случае не
подходит, так как мы имеем дело с переменной не целочисленного типа, поэтому
надо обязательно указать для PHP формат вывода такой переменной.
Список литературы
Для
подготовки данной работы были использованы материалы с сайта http://www.soch.imperium.by