Śledzenie czasu wykonania skryptu w PHP

PHP musi śledzić ilość czasu procesora używanego przez dany skrypt, aby wymusić limit max_execution_time.

Czy Jest jakiś sposób, aby uzyskać dostęp do tego wewnątrz skryptu? Chciałbym dołączyć trochę logowania z moimi testami o tym, ile CPU zostało spalone w rzeczywistym PHP (czas nie jest zwiększany, gdy skrypt siedzi i czeka na bazę danych).

Używam Linuksa.

Author: Eric Leschinski, 0000-00-00

1 answers

W systemach unixoid (a także w php 7+ W Windows), możesz użyć getrusage, Jak:

// Script start
$rustart = getrusage();

// Code ...

// Script end
function rutime($ru, $rus, $index) {
    return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000))
     -  ($rus["ru_$index.tv_sec"]*1000 + intval($rus["ru_$index.tv_usec"]/1000));
}

$ru = getrusage();
echo "This process used " . rutime($ru, $rustart, "utime") .
    " ms for its computations\n";
echo "It spent " . rutime($ru, $rustart, "stime") .
    " ms in system calls\n";

Zauważ, że nie musisz obliczać różnicy, Jeśli tworzysz instancję php dla każdego testu.

 172
Author: phihag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-31 16:14:59