Как измерить время работы скрипта на php.


Работая над оптимизацией высоко нагруженных проектов нередко необходимо замерять время работы скрипта, чтобы было что и с чем сравнивать. Для php можно использовать простейшую функцию microtime(), с помощью которой можно набросать небольшой код для замера времени:

1
2
3
4
5
6
7
8
9
<?php
$start = microtime(true);
 
// какие-то действия
...
 
$end = microtime(true);
$time = $end - $start;
printf('Время работы скрипта: %.3F сек.', $time);

Первый вызов функции microtime() необходимо поместить в самом начале скрипта, а второй — после его последней строки. Вычтя одно время из другого, мы, собственно, и получим разницу — время работы самого скрипта. Параметр true, передаваемый функции, позволяет получить значение с «плавающей» точкой — float. В конце мы используем функцию printf для форматирования и вывода на экран значения с тремя знаками после запятой. Если вам необходима большая точность, то есть больше знаков — замените тройку на нужное число.

Давайте поэкспериментируем. Создадим цикл от 0 до 10000 и будем в нем просто выводить на экран строку «Тест» с помощью разных функций и операторов.

echo

1
2
3
4
5
6
7
8
<?php
$start = microtime(true);
for ($i = 0; $i < 10000; $i++) {
    echo ("Тест");
}
$end = microtime(true);
$time = $end - $start;
printf('Время работы скрипта: %.3F сек.', $time);

На моей машине результаты получаются в диапазоне от 0.008 до 0.009.

Проверим, как быстро работает print_r():

1
2
3
4
5
6
7
8
<?php
$start = microtime(true);
for ($i = 0; $i < 10000; $i++) {
    print_r("Тест");
}
$end = microtime(true);
$time = $end - $start;
printf('Время работы скрипта: %.3F сек.', $time);

Результаты от 0.030 до 0.035.

Как видим, echo() работает по-шустрее, поэтому именно этот оператор и рекомендуется использовать.

Вот таким вот образом, можно сравнивать не только быстродействие отдельных функций, но и время работы вашего скрипта первой версии с последующими.





Другие посты

Категория: PHP-скрипты

Комментарии (1)

 

  1. Спасибо. Я начал осваивать PHP. Как раз такой практики ине хватает.

Оставить комментарий