johjoh: memory size exhausted - womit?

hallo zusammen,

ich habe mal ein kleines cms geschrieben, das auf diversen hosting paketen läuft, immer problemlos. jetzt bekomme ich bei einer seite die fehlermeldung:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 11440 bytes) in [...]

in der zeile wird imagecreatefromjpeg() von der gd-library aufgerufen. wie es aussieht liegt das daran, dass die bilddatei die ich hochgeladen habe ne relativ hohe auflösung hatte - ca. 8 Megapixel. mit 3 byte pro pixel (1 byte pro farbe) sind das also dekomprimiert 24mb ...schon ne menge, aber da bleiben immernoch 9mb und ich frag mich, wo meine skripte das verbrauchen sollen. gibt es nen weg, sich die speicherbelegung anzuschauen?

danke und gruß,
johannes

  1. Hallo,

    Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 11440 bytes) in [...]

    in der zeile wird imagecreatefromjpeg() von der gd-library aufgerufen. wie es aussieht liegt das daran, dass die bilddatei die ich hochgeladen habe ne relativ hohe auflösung hatte - ca. 8 Megapixel. mit 3 byte pro pixel (1 byte pro farbe) sind das also dekomprimiert 24mb ...schon ne menge,

    die GD-Bibliothek arbeitet aber mit 40 Bit pro Pixel und damit sind es 40 MB und damit mehr als die Dir zur Verfügung stehenden 32 ...

    Freundliche Grüße

    Vinzenz

    1. die GD-Bibliothek arbeitet aber mit 40 Bit pro Pixel und damit sind es 40 MB und damit mehr als die Dir zur Verfügung stehenden 32 ...

      ah, besten dank. ich habe jetzt mal versucht das speicher-limit per ini_set hochzusetzen - hat erstaunlicher weise funktioniert. (bei one.com)

      1. Hallo johjoh,

        ah, besten dank. ich habe jetzt mal versucht das speicher-limit per ini_set hochzusetzen - hat erstaunlicher weise funktioniert. (bei one.com)

        trotzdem solltest du Toms Funktion (oder eine ähnliche) nutzen um eine Überschreitung des Speicherlimits abzufangen. Irgendwann reicht vllt. deine ini-set()-Einstellung nicht mehr aus und dann musst du wieder an den Code. Mit Toms Funktion lässt sich das elegant vermeiden.

        Grüße, Matze

        1. hallo maetze,

          trotzdem solltest du Toms Funktion (oder eine ähnliche) nutzen um eine Überschreitung des Speicherlimits abzufangen.

          was meinst du mit "Toms Funktion"?

          gruß, johannes