json_decode bläst Speicher auf
der Mansch
- php
Hi,
ich kann leider hier keinen Code bzw. dessen Output posten, da gerade kein Serverzugang besteht. Entschuldigung vielmals.
Folgender Fall:
Ich lese von unserem Server mittels file_get_contents() sehr viele Json-Dateien ein (.json), die ich anschliessend mit json_decode in ein PHP-Objekt übertrage.
Dateigröße: ca 13mb
Speicher nach dem Öffnen mittels file_get_contents(): 15mb
Speicher nach json_decode: 180mb!!!
What the hell? Hat jemand mit dieser Funktion Erfahrung? Eine Verringerung der Verschachtelungstiefe hat keine Veränderung gebracht, ein Umwandeln in ein Array geht nicht, da ich das Objekt brauche.
Leider gibt es nun auch vereinzelte Dateien, die über 50mb groß sind, ein Dekodieren würde also meinen verfügbaren Speicher sprengen!
grüße
der Mansch
Hallo,
http://www.phpdevblog.net/2009/11/serialize-vs-var-export-vs-json-encode-memory-usage.html
Gruß
alles klar, kann man wohl nichts machen. Muss ich mir ein Workaround ausdenken.
schönes WE
de Mansch
Tach.
Ich lese von unserem Server mittels file_get_contents() sehr viele Json-Dateien ein (.json), die ich anschliessend mit json_decode in ein PHP-Objekt übertrage.
Dateigröße: ca 13mb
Speicher nach dem Öffnen mittels file_get_contents(): 15mb
Speicher nach json_decode: 180mb!!!
Was gibt denn Dein Wert von 180 MB Speicher an? Den maximalen (oder vielleicht durchschnittlichen) Speicher, den json_decode während der Decodierung belegt? Oder eher die Größe der Daten *nach* der Decodierung?
Hallo,
Tach.
Ich lese von unserem Server mittels file_get_contents() sehr viele Json-Dateien ein (.json), die ich anschliessend mit json_decode in ein PHP-Objekt übertrage.
Dateigröße: ca 13mb
Speicher nach dem Öffnen mittels file_get_contents(): 15mb
Speicher nach json_decode: 180mb!!!Was gibt denn Dein Wert von 180 MB Speicher an? Den maximalen (oder vielleicht durchschnittlichen) Speicher, den json_decode während der Decodierung belegt? Oder eher die Größe der Daten *nach* der Decodierung?
Und wie groß ist der File, wenn du die JSON-dekodierten Daten als serialisierte Daten abspeicherst?
Gruß
jobo