Strings und hohe Speichernutzung

8

Wenn ich diesen Code in XE4 ausführe, endet die Anwendung mit ~ 800 MB.

Warum nicht näher bei 100 MB?

Die Verwendung von Ansistring anstelle von String macht keinen Unterschied.

%Vor%     
Uffe Kousgaard 23.01.2014, 14:43
quelle

2 Antworten

11

Eine Zeichenfolge der Länge 10 in XE4 verwendet 34 Byte Speicher (siehe DocWiki ). 20 Bytes für den Inhalt, 2 Bytes für den # 0-Terminator und 12 Bytes Verwaltungsdaten.

Jeder Array-Eintrag ist ein Zeiger auf diese Art von Speicher. Daher enden diese 10 Millionen Strings im Array mit mindestens 380 MB (340 für die Strings und 40 für die Array-Elemente) des Speichers.

    
Uwe Raabe 23.01.2014, 15:10
quelle
1

Versuchen Sie es

%Vor%     
Arioch 'The 23.01.2014 21:12
quelle

Tags und Links