Effektiv bekommt man in
Win32-Programmen (die standardmäßig nur 2 GB haben) ab etwa 700MB Probleme, wenn man versucht das als
ein Block in den Arbeitsspeicher zu bekommen.
Denn der kleine Speicher ist fragmentiert ... überall liegen die EXE, DLLs und sonstwas rum.
Zusätzlich braucht man beim Laden von "Texten" vorübergehend bis zum 5-fachen als Speicher.
z.B.
* Datei laden (die Bytes) -> 1x (1 Byte pro Char)
* das in einen String konertieren t.B. Bytes mit
ANSI drin in einen UnicodeString (TEncoding) -> 2x (2 Byte pro Char)
* und dann den String verarbeiten und die Inhalte in Einzelstrings kopieren -> 2x (2 Byte pro Char)
1+2+2 = 5