Как измерить время выполнения кода
Короткий ответ
Запомните показание таймера до и после кода:
<?php
$start = hrtime(true);
$sum = 0;
for ($i = 0; $i < 1_000_000; $i++) {
$sum += $i;
}
echo round((hrtime(true) - $start) / 1e6, 2), ' ms';Функция для замеров
Оберните замер в функцию, принимающую код:
<?php
function measure(callable $code): float
{
$start = hrtime(true);
$code();
return (hrtime(true) - $start) / 1e6;
}
$ms = measure(fn () => array_sum(range(1, 100000)));
echo $ms < 1000 ? 'fast enough' : 'too slow';Результат:
fast enoughОдин замер ничего не значит
Время зависит от загрузки компьютера. Повторите код много раз и сравнивайте суммарное время — и только на одном и том же компьютере.
Функции из этого ответа
- hrtime — Возвращает показание точного таймера в наносекундах.
- microtime — Возвращает текущее время с точностью до микросекунд.
- memory_get_usage — Возвращает объём памяти, занятый программой.