Einzelnen Beitrag anzeigen

stalkingwolf

Registriert seit: 6. Mai 2011
394 Beiträge
 
#1

JSONValue zu wenig Arbeitsspeicher bei Array von 100MB

  Alt 16. Mär 2021, 09:31
Folgendes Szenario. Wir fragen einen JSON Array mit Bildern ab, welcher teilweise über 100MB wird. z.b 20 Dateien a 5MB.

Wenn ich diesen auf Seiten meiner APP in FMX Anfrage wird der Array über 500MB und mit dem umwandeln von JSONValue in TJSONArray knallt mir das Programm mit der Meldung zu wenig Arbeitsspeicher weg ( 32Bit ca 1GB ist Ende ).

Auszug aus dem Quellcode :
Code:
var
RESTResponse  : TRESTResponse;
JSONArray      : TJSONArray;
jValue         : TJSONValue;
begin
.
.
jValue     := RESTResponse.JSONValue;
JSONArray  := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(jValue.ToString),0) as TJSONArray;
Beide Zeilen bei 100MB Input ca 500MB Speicher. und ich kann es auch nicht wirklich umgehen.
Wenn ich das ganze im RestClient in Firefox anstarte verbraucht Firefox 2,7GB!

Frage ist. Gehe ich falsch an das Thema dran?
Ich werde nun unsere Aufrufe und Anfragen ändern, so dass ich die Dateien in kleinen Paketen übergebe und nicht einen großen Array.
  Mit Zitat antworten Zitat