Mailinglisten-Archive |
Hallo, ich habe in der Vergangenheit immer wieder mal in meinem PHP-Fehler-Log einen Eintrag wie den folgenden gefunden: [Fri Jun 29 08:51:05 2007] [error] [client **.*.**.***] PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 130 bytes) in /.../PEAR/Cache/Lite/Function.php on line 185 Grundsätzlich ist mir schon klar, was die Meldung bedeutet, und ich habe die Meldung auch erfolgreich dadurch beseitigt, daß ich die erlaubte Speichergröße verhältnismäßig geringfügig von 8 auf 10 MB erhöht habe. Was mich aber interessiert ist folgendes: Selbst wenn der Smarty-Cache komplett geleert ist, brauchen meine Skripte zur Verarbeitung keiner einzigen Seite 8 MB Arbeitsspeicher. Der Grenzwert wird nie überschritten. Wie kann es also sein, daß der Wert in bestimmten Situationen doch überschritten wurde? Wenn ich im Handbuch zu memory_limit gelesen habe, "Setzt den Maximalwert des Speichers in Byte, den ein Skript verbrauchen darf.", dann habe ich immer gedacht, daß sich das auf jede einzelne Ausführung des Skripts bezieht. Scheinbar habe ich da etwas falsch gedacht. Bezieht sich das Speicherlimit vielleicht auf die Summe aller gleichzeitigen Ausführungen eines Skripts, und es wurde wegen einer besonders hohen Anzahl von Seitenaufrufen überschritten? Oder spielen noch andere Faktoren in die Verwaltung des Speichers mittels memory_limit mit herein? VieleGrüße Lutz
php::bar PHP Wiki - Listenarchive