Работая над оптимизацией высоко нагруженных проектов нередко необходимо замерять время работы скрипта, чтобы было что и с чем сравнивать. Для php можно использовать простейшую функцию microtime(), с помощью которой можно набросать небольшой код для замера времени:
<?php
$start = microtime(true);
// какие-то действия
...
$end = microtime(true);
$time = $end - $start;
printf('Время работы скрипта: %.3F сек.', $time);
Первый вызов функции microtime() необходимо поместить в самом начале скрипта, а второй – после его последней строки. Вычтя одно время из другого, мы, собственно, и получим разницу – время работы самого скрипта. Параметр true, передаваемый функции, позволяет получить значение с «плавающей» точкой – float. В конце мы используем функцию printf для форматирования и вывода на экран значения с тремя знаками после запятой. Если вам необходима большая точность, то есть больше знаков – замените тройку на нужное число.
Давайте поэкспериментируем. Создадим цикл от 0 до 10000 и будем в нем просто выводить на экран строку «Тест» с помощью разных функций и операторов.
echo
<?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():
<?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() работает по-шустрее, поэтому именно этот оператор и рекомендуется использовать.
Вот таким вот образом, можно сравнивать не только быстродействие отдельных функций, но и время работы вашего скрипта первой версии с последующими.