@rewala

Как рассчитать время работы скрипта в php?

Как рассчитать время работы скрипта. Не могу понять в чем моя ошибка. Скрипт выдает результат равный нулю, т.е он выполняет действия мгновенно, но это не всегда так, я иногда ожидаю и по 5 секунд точно.

Логика данного скрипта такая:
1. Беру текущее время.
2.Загружаю чем нибудь скрипт,например, циклом
3. Вычисляю разницу между тем временем, которое было и тем которое стало.

<?php
// время до начала цикла
$start_time = time();

// выполнение цикла
for($i = 0; $i < 100000; $i++){
  echo $i;
}
echo "<br>";

// время полсе завершения цикла
$end_time = time();

$result = $end_time - $start_time;

// время выполнения скрипта
echo "Time: ".$result;

?>
  • Вопрос задан
  • 356 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Вместо time(), который с точностью до целых секунд, используйте microtime(true), который вернёт с точностью до тысячных долей секунды.

Скорее всего, ваш скрипт выполняется меньше секунды, и из-за округления до целых возвращается 0.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
BOOMER_74
@BOOMER_74
Full-Stack разработчик
В простых скриптах лучше использовать microtime, как в ответе Сергей Соколов. В сложных скриптах рекомендую настроить Xdebug Profiling:
https://xdebug.org/docs/profiler
https://www.jetbrains.com/help/phpstorm/profiling-...
https://confluence.jetbrains.com/display/PhpStorm/... (полное руководство)
Ответ написан
Комментировать
gobananas
@gobananas
finishhim.ru
<?php
$time1 = microtime(true); // время до начала цикла

// выполнение цикла
for($i = 0; $i < 100000; $i++){
  echo $i;
}
echo "<br>";

$time2 = microtime(true); // время после цикла

// время выполнения скрипта
echo "Time: ". $time2 - $time1;
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы