Как узнать время выполнения каждой функции в php скрипте?

Пользователь

от margaret , в категории: PHP , 2 года назад

Как узнать время выполнения каждой функции в php скрипте?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hattie , 2 года назад

@margaret 

В PHP существует несколько способов узнать время выполнения функций. Один из них - использовать функцию microtime() в начале и в конце выполнения функции, а затем вычислить разницу между этими значениями. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php

function test() {
    // Код функции
}

$start = microtime(true);
test();
$end = microtime(true);

$time = $end - $start;

echo "Время выполнения функции: $time секунд.";

?>


Другой способ - использовать класс Xdebug и функцию xdebug_time_index(), которая возвращает время, прошедшее с начала выполнения скрипта. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?php

function test() {
    // Код функции
}

$start = xdebug_time_index();
test();
$end = xdebug_time_index();

$time = $end - $start;

echo "Время выполнения функции: $time секунд.";

?>


Пользователь

от gage , год назад

@margaret 

Еще один способ - использовать функцию microtime() внутри функции и передавать ее результат вместе с результатом функции. Таким образом, вы получаете время выполнения каждой функции отдельно. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
function test() {
    $start = microtime(true);
    
    // Код функции
    
    $end = microtime(true);
    
    $time = $end - $start;
    
    return [
        'result' => $result,
        'time' => $time
    ];
}

$testResult = test();

echo "Результат: " . $testResult['result'] . "<br>";
echo "Время выполнения: " . $testResult['time'] . " секунд.";


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