Zwecks Optimierung wollte ich in meinem Projekt alle Variablen die bestimmte Werte nicht überschreiten durch kleinere Typen ersetzen, sprich alle Strings die definitiv nicht über 255 Zeichen durch Shortstrings erstetzen.
Anschließend war die Speicherverbrauch Anzeige im Task Manager aber horend höher.
Ich habs an einem leeren Projekt getestet mit
var Zeilen : array [1..100000] of string;
und dann im formcreate auf nichts gesetzt :
Delphi-Quelltext
1: 2:
| for a := 1 to 100000 do zeilen[a] := ''; |
Mit Strings ist sind etwa 3 Megabyte speicher in Besitzt, aber mit Shortstrings ganze 58 Megabyte.
Vermute ich richtig das Shortstrings unabhängig ihres Inhalts IMMER 256 Bytes Speicher fressen während normale Strings nur so viele Bytes Speicher an sich reissen wie tatsächlich in ihnen steht? Wenn ja macht die Verwendung von shortstrings zur Speicheroptimierung ja gar keinen Sinn.
Moderiert von
Motzi: Code- durch Delphi-Tags ersetzt.