Wie funktioniert PHP max_execution_time funktioniert?
Habe ich einige Zweifel über die maximum execution time set in php.ini.
Vorausgesetzt, max_execution_time ist 3 Minuten, sollten Sie die folgenden Fälle:
-
Ich habe einen Prozess, der am Ende in 2 Minuten.
Aber es ist in einer Schleife und es sollte funktionieren 5 mal. Also es werden 10 Minuten.
Wird das Skript ordnungsgemäß ausgeführt, ohne dass Fehler für Zeitüberschreitung? Warum?
-
PHP-Funktion druckt nur die Daten und es dauert nur 2 Minuten.
Aber die Ausführung der Abfrage ist unter 5 Minuten.
Wird das Skript ohne Fehler ausgeführt? Warum?
-
Meine einzigen php-Prozess selbst nehmen Sie sich 5 Minuten.
Aber rufe das Skript von der Kommandozeile aus.
Wird es richtig funktioniert? Warum?
-
Wie Speicher erlaubt und Ausführung miteinander zu tun?
Wenn die Ausführungszeit für ein Skript ist sehr hoch
Aber es gibt kleine Menge von Daten
Wird es Auswirkungen auf den Speicher, oder nicht? Warum?
Möchte ich erfahren, was Los ist intern, das ist, warum ich diese Fragen.
Ich will nicht einfach erhöhen Zeit limit und memory limit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Regeln auf
max_execution_time
sind relativ einfach.Ausführung Zeit beginnt zu zählen, wenn die Datei interpretiert wird. Zeit benötigt, bevor zur Vorbereitung der Anfrage, bereiten hochgeladenen Dateien, den web-server macht seine Sache usw. zählt nicht zu der Ausführungszeit.
Die execution time ist die Gesamtzeit, die das Skript ausgeführt wird, einschließlich der Datenbank-Abfragen, unabhängig davon, ob es läuft in Schleifen oder nicht. So im ersten und zweiten Fall, wird das Skript endet mit einem timeout-Fehler, weil das die definierte Verhalten von
max_execution_time
.Externe system ruft mit
exec()
und so tun nicht zählen für die Ausführung Zeit, außer auf Windows. (Quelle) Das bedeutet, dass Sie möglicherweise ein externes Programm, das dauert länger alsmax_execution_time
.Beim Aufruf aus der Befehlszeile
max_execution_time
standardmäßig0
. (Quelle) Also im Dritten Fall sollte das Skript ohne Fehler ausgeführt.Ausführungszeit und Speichernutzung haben nichts miteinander zu tun. Ein Skript kann stundenlang laufen, ohne erreichen der Speichergrenze. Wenn es funktioniert, dann oft durch eine Schleife, wo Variablen sind nicht ausgeschaltet, und vorher reservierten Speicher nicht freigegeben, richtig.