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.