Време за изпълнение на PHP скрипт.
В тази статия ще ви разкажем за това, как да засечете времето за изпълнение на вашите PHP кодове. Може би вече сте забелязали някъде (например в този сайт) малък надпис най-отдолу в страницата: „Генериране на страницата: 2.130 секунди“. Това нещо можете да го постигнете с помощта на три функции.
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 в дадения случай не е подходящо, тъй като работим с променлива от нецелочислен тип, трябва задължително да укажем формата за извеждане на тази променлива.


