Я пытаюсь профилировать некоторый фрагмент кода php, вычисляя время в микросекундах, которое требуется для его выполнения.Я создал функцию профилировщика, которая принимает другую функцию в качестве параметра, подобного этому
function profiler($funct)
{
$raw_start_time = microtime();
$funct();
$raw_end_time = microtime();
$start_time = 1000000 * (double) explode(" ", $raw_start_time)[0];
$end_time = 1000000 * (double) explode(" ", $raw_end_time)[0];
return $end_time - $start_time;
}
Я использую свою функцию profiler()
следующим образом:
$duration = profiler(function() {
//code i want to profile
});
echo $duration;
Функция работает правильно большинство раз и возвращаетправильная продолжительность выполнения.Тем не менее, я получаю отрицательные значения в некоторых тестовых случаях.В чем может быть проблема?