Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Riesige Daten im Memory speichern (https://www.delphipraxis.net/207719-riesige-daten-im-memory-speichern.html)

juelin 26. Apr 2021 19:01

Riesige Daten im Memory speichern
 
Hallo zusammen,
kann sein, dass es schon irgendwo beschrieben worden ist. Aber soory hab es auf die Schnelle
nicht gefunden.
Benutze Windows 10 und Delphi 10.3

Nun zu meinem Problem:
Ich möchte sehr große Datenmenge im Speicher ablgen (ca. 16MB).
habe folgendes programmiert
Delphi-Quellcode:

type t64kbytearray = record
  dbytearray2: array[1..65535] of Byte;
end;

var satzdat: array [1..255] of t64kbytearray;
Nach Start Programm bekoomme ich natülich "Stack overflow" Meldung.

Gibt es eine Möglichkeit so große Datenmengen im Speicher abzulegen?
Wenn ja wäre ein Beispiel schön.

Danke für Eure Mithilfe
und bleibz gesund

Gruß
Jürgen

himitsu 26. Apr 2021 19:12

AW: Riesige Daten im Memory speichern
 
erstmal dynamisches Array (mit SetLength), anstatt einem statischen Array, wenn sooo groß,
denn dort wird an der Stelle nur der interne Array-Zeiger gespeichert.
Oder man nimmt gleich eine passende Listen-Klasse oder Dictionary, anstatt einem Array.

Und dann kommt es drauf an, wo deine Variable benutzt wird.

Als Feld in einem Objekt (z.B. im Private der Form) liegt es auf dem Heap,
aber als lokale Variable innerhalb einer Funktion, da liegt es auf dem winzigen Stack.

(wie man den Stack vergrößern könnte, sag ich jetzt nicht ... steht aber in der Hilfe ... aber das grundsätzliche Problem würde es eh nicht beheben)

juelin 26. Apr 2021 19:21

AW: Riesige Daten im Memory speichern
 
Danke,
genau das war es.
Gruß
Jüren


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf