• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Memory Limit Fehler

Leviathan

Hacker
Hi,

Code:
Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 75602937 bytes)

Laut phpinfo sind 128M limit eingestellt.
Warum wirft hier das Script einen Fehler (75 MB sind doch kleiner als 128 M)?

Gruß Dominik
 
OP
L

Leviathan

Hacker
Danke für die Antwort. Ist mir dennoch unklar. In der std.-dist php.ini steht als Beschreibung:

memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)

Ist dann mit "a script" _alle_ php-Scripte gemeint die eben laufen!?!?

Gruß Dominik
 
OP
L

Leviathan

Hacker
In der Doku wird auch nur von "ein Skript" gesprochen.

http://de2.php.net/manual/de/ini.core.php#ini.memory-limit
memory_limit integer

Setzt den Maximalwert des Speichers in Byte, den ein Skript verbrauchen darf. Damit können schlecht geschriebene Skripte daran gehindert werden, den gesamten verfügbaren Speicher eines Servers "aufzufressen". Um diese Option nutzen zu können, muss sie während des Kompilierens aktiviert werden. D.h., Ihre Konfigurations-Zeile muss folgendes enthalten: --enable-memory-limit. Beachten Sie, dass Sie den Wert auf -1 setzen müssen, wenn Sie kein Speicherlimit wünschen.

Seit PHP 4.3.2 und wenn memory_limit aktiviert ist, steht die PHP Funktion memory_get_usage() zur Verfügung.

Wird ein integer Wert verwendet, wird dieser Wert in Bytes gemessen. Sie können auch die Kurzschreibweise verwenden, wie in dieser FAQ beschrieben.
 

panamajo

Guru
Korrekt, memory_limit bezieht sich auf einen einzelnen PHP Thread und damit auf ein Skript.

Ich rate mal dass der hohe Resourcenverbrauch bzgl. RAM dadurch entsteht dass Bilder mit PHP/GDlib bearbeitet werden?
Dann hilft es die Bildgröße zu beschränken, da GDlib beim bearbeiten eine unkomprimierte Kopie des Bildes im Speicher benötigt:
RAM = Breite * Höhe * 4 (Truecolor)

Da kommt selbst beim Erzeugen von winzigen Thumbnails aus Postervorlagen (in Druckqualität) ganz schön was zusammen :mrgreen:
 
Oben