Время выполнения скрипта на PHP

В этоv примере я расскажу о том, как засечь время выполнения вашего кода

Наверняка вы уже где-нибудь видели маленькую надпись внизу страницы, что-нибудь типа:
"Страница создана за 0.1234 секунд"

Вот тоже самое можно сделать с помощью всего трех функций:
Функция string microtime(void) - возвращает строку типа "msec sec", где msec - количество миллисекунд и sec - текущее время в секундах с начала эпохи UNIX (0:00:00 January 1, 1970 GMT). Эта функция работает только в операционных системах, поддерживающих системный вызов gettimeofday().
Функция array explode(string separator, string string [, int limit]) - делит строку string в соответствии с разделителем separator и записывает все части (или не все, если указано количество частей limit) в массив, который функция выдает в качестве результата.
Функция void printf (string format [, mixed args]) - эта функция полностью аналогична своей C версии. Она выводит аргументы (args), по заданному формату format
Параметры:
format - строковый формат вывода данных
args - аргументы, для форматирования

Нам нужно перед выполнением кода, время которого мы хотим засечь, считать текущее время. После выполнения кода мы опять должны будем считать текущее время и вывести разницу.

Пишем следующие строки в самом начале вашего PHP скрипта:
<?php
$mtime = microtime();        //Считываем текущее время 
$mtime = explode(" ",$mtime);    //Разделяем секунды и миллисекунды
// Составляем одно число из секунд и миллисекунд
// и записываем стартовое время в переменную  
$tstart = $mtime[1] + $mtime[0];
?>

Теперь в самом конце, после кода, время выполнения которого нам надо засечь, пишем:

<?php
// Делаем все то же самое, чтобы получить текущее время 
$mtime = microtime(); 
$mtime = explode(" ",$mtime); 
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);//Вычисляем разницу 
// Выводим не экран 
printf ("Страница сгенерирована за %f секунд !", $totaltime);
?>

Обратите внимание, что простой вывод с помощью print или echo в данном случае не подходит, так как мы имеем дело с переменной не целочисленного типа, поэтому надо обязательно указать для PHP формат вывода такой переменной.

Вариант 2:
<?php // Определяем текущее время. Присваиваем переменной $Begin его значение. 

list($msec,$sec)=explode(chr(32),microtime()); 
$Begin=$sec+$msec; 

// В этом месте должен быть размещен ваш php скрипт.
// Вставить его можно двумя способами: 1) с помощью команды include(); 2) просто 
// скопировать его сюда. 
// К примеру: include ('myfile.php'); 

// Определяем ещё раз текущее время. Присваиваем переменной $end его значение.

list($msec,$sec)=explode(chr(32),microtime()); 
$end=$sec+$msec;

// Отнимаем время начала выполнения скрипта от конечного времени.
// Тоесть: отнимаем от переменной $end переменную $Begin
// Выводим время потраченое на выполнение скрипта
// с 4 знаками после запятой (точки). 

echo "Скрипт выполнен за ".round($end-$Begin,4)." сек."; 

?>
Теги:
Время выполнения скрипта
Добавлено: 06 Апреля 2018 21:14:33 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...