379 Stimmen

Verfolgung der Skriptausführungszeit in PHP

PHP muss die Menge an CPU-Zeit verfolgen, die ein bestimmtes Skript verbraucht hat, um das Limit max_execution_time durchzusetzen.

Gibt es eine Möglichkeit, innerhalb des Skripts Zugriff darauf zu erhalten? Ich möchte einige Protokollierung mit meinen Tests über wie viel CPU in der tatsächlichen PHP verbrannt wurde (die Zeit wird nicht erhöht, wenn das Skript sitzt und wartet auf die Datenbank).

Ich verwende einen Linux-Rechner.

18voto

Sinan Eldem Punkte 5090

Schöner wird es, wenn Sie die Sekundenausgabe wie folgt formatieren:

echo "Process took ". number_format(microtime(true) - $start, 2). " seconds.";

wird gedruckt

Process took 6.45 seconds.

Dies ist viel besser als

Process took 6.4518549156189 seconds.

13voto

G

<!-- put this at the top of the page --> 
<?php 
   $mtime = microtime(); 
   $mtime = explode(" ",$mtime); 
   $mtime = $mtime[1] + $mtime[0]; 
   $starttime = $mtime; 
;?> 

<!-- put other code and html in here -->

<!-- put this code at the bottom of the page -->
<?php 
   $mtime = microtime(); 
   $mtime = explode(" ",$mtime); 
   $mtime = $mtime[1] + $mtime[0]; 
   $endtime = $mtime; 
   $totaltime = ($endtime - $starttime); 
   echo "This page was created in ".$totaltime." seconds"; 
;?>

F h )

13voto

Aris Punkte 4169

Um Minuten und Sekunden anzuzeigen, können Sie verwenden:

    $startTime = microtime(true);
    $endTime = microtime(true);
    $diff = round($endTime - $startTime);
    $minutes = floor($diff / 60); //only minutes
    $seconds = $diff % 60;//remaining seconds, using modulo operator
    echo "script execution time: minutes:$minutes, seconds:$seconds"; //value in seconds

11voto

danieltalsky Punkte 7346

Der billigste und schmutzigste Weg ist es, einfach eine microtime() Aufrufe an den Stellen in Ihrem Code, die Sie überprüfen möchten. Wenn Sie dies direkt vor und nach Datenbankabfragen tun, können Sie diese Zeitspannen ganz einfach aus der restlichen Ausführungszeit Ihres Skripts herausrechnen.

Ein Hinweis: Ihre PHP-Ausführungszeit wird selten der Grund für die Zeitüberschreitung Ihres Skripts sein. Wenn ein Skript eine Zeitüberschreitung verursacht, ist es fast immer ein Aufruf an eine externe Ressource.

PHP-Microtime-Dokumentation: http://us.php.net/microtime

8voto

Stewart Robinson Punkte 3239

Ich denke, Sie sollten sich xdebug ansehen. Die Profiling-Optionen geben Ihnen einen Vorsprung, um viele prozessbezogene Elemente zu kennen.

http://www.xdebug.org/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X