Време за изпълнение на 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 в дадения случай не е подходящо, тъй като работим с променлива от нецелочислен тип, трябва задължително да укажем формата за извеждане на тази променлива


/ Трябва да сте регистриран за да напишете коментар /