В этой статье я расскажу о том, как засечь время выполнения вашего кода на 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 формат вывода такой перемен
Похожие работы
... И в самом конце скрипта смотрим время и находим разность начального и текущего времени: $TIME_END = getmicrotime(); $TIME_SCRIPT = $TIME_END - $TIME_START; Всё… в переменной $TIME_SCRIPT содержится время выполнения нашего скрипта. Но при выводе это переменной мы получим примерно следующее: 0.31106710434 Чтобы красиво вывести это число воспользуемся функцией number_format, второй параметр ...
... интерфеса и интерфейса локольной сети · Предложение о выборе вариантов загрузки При этом возможен вариант запгрузки как с SCSI устройства (диск, CDROM, лента, …) так и через локальную сеть. Загрузочный диск должен быть предварительно сконфигурирован. Так как обьем Boot ROM не может быть большим, в его задачи входит загрузка вторичного загрузчика ...
... ... Главная цель: для проекта, скриптование которого осуществляется группой тестеров, реализовать выполнение пакета скриптов (test set) в полностью автоматическом режиме. Приступим! Предполагается, что QuickTest, TestDirector и плугины (plug-ins), необходимые для их совместной работы, установлены и все функционирует без проблем (на данный момент я использую QuickTest Professional версии 6.5 и ...
... Java-совместимом Web-обозревателе. Необходимо использовать обозреватель, имеющий поддержку JDK (Java Development Kit √ стандарт Java) версии 1.1.x или выше. 3.2 Технология доступа к базам данных на стороне сервера с использованием механизма CGI В соответствии с идеологией CGI-интерфейсов, вся функциональность размещается на сервере приложений. Ее реализует один или несколько CGI-скриптов, ...
0 комментариев