Время выполнения

В этом уроке я расскажу о том, как засечь время выполнения вашего кода на 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 формат вывода такой переменной.
 
« Предыдущая статья   Следующая статья »