"PHP how-to" Scriptlaufzeit messen oder hochsetzen - Johannes Schwichtenberg

johannesschwichtenberg.de

Scriptlaufzeit messen oder maximale Laufzeit hochsetzen

PHP how-to

Messen der Scriptausführungszeit

Beim Entwickeln, Testen oder zur Information kann es nützlich sein, die Zeit zu ermitteln, die ein PHP-Script zur Verarbeitung benötigt. – Besonders, wenn man z.B. aufwändige Datenbankzugriffe, Importe usw. durchführt.

Das Verfahren zur Zeitmessung ist denkbar einfach:
Es wird die Zeit beim Scriptbeginn in einer Variable gespeichert und am Skriptende die Differenz zur aktuellen Zeit gebildet.

Beispielcode für PHP5:

<?php 
$beginn = microtime(true);

// Skript und Aktionen die gemessen werden sollen

$dauer = microtime(true) - $beginn;
echo "Verarbeitung des Skripts: $dauer Sek.";
?>

In PHP5 wurde der Parameter in der Funktion microtime – mit der man den Unix-Zeitstempel incl. Microsekunden erhält – hinzugefügt, sodass man den Zeit-Wert als Fließkommazahl (float) bekommt. Wer noch mit PHP4 arbeitet, kann sich beispielsweise auf php.net/microtime zu einem Workaround inspirieren lassen.

Mittels einer Formatierungsfunktion kann man die Ausgabe der Scriptlaufzeit noch etwas ansehnlicher runden, z.B. sprintf('%.3f', $dauer); für drei Nachkommastellen.
 

Hochsetzen der Skriptlaufzeit

Falls die Verarbeitung einer PHP-Datei ständig zur Überschreitung der per ini-File festgelegten maximalen Scriptlaufzeit führt, kann man diese hochsetzen. Dies sollte jedoch nicht unüberlegt durchgeführt werden, denn eine möglichst niedrige Laufzeit soll Serverauslastungen reduzieren oder bei fehler- bzw. schadhaftem Code die Sicherheit wahren.

Das Hochsetzen der maximalen Ausführungszeit ist in Webhosting-Paketen möglicherweise vom Anbieter deaktiviert.

Die maximale Skriptlaufzeit kann man dauerhaft in der PHP-ini-Datei festlegen oder für das aktuelle Script mithilfe folgendem Beispielcodes:

<?php 

ini_set('max_execution_time', 60);

?>

Der häufige Standardwert von 30 Sekunden würde hiermit für das laufende Script auf 60 sec. erhöht. Im Fehlerfall gibt die Funktion false zurück, ggf. kann man per ini_get('variablen_name') auch den jeweiligen ini-Wert abfragen.

Um den Wert dauerhaft in der PHP-ini zu ändern, öffnet man die von PHP verwendete ini-Datei (z.B. in der phpinfo()-Ausgabe den Pfad nachlesen) und ändert dort den Wert des Eintrags max_execution_time. Datei anschließend speichern und Webserver neu starten, damit die Einstellungen geladen werden.

Bei einem managed Server o.ä. ist diese Einstellung evtl. auch über eine Server-Verwaltungssoftware (z.B. Plesk, Webmin usw.) möglich.

 

Hinweis: Sämtliche Informationen ohne Garantie und Anspruch auf Vollständigkeit, jedoch nach bestem Wissen des Autors zum Zeitpunkt der Erstellung.