Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: Speicherverwaltung von Delphi (Compiler)

  Alt 29. Aug 2005, 12:21
[quote="himitsu"]Allerdings ist TStrings und Co. nicht gerade schnell, wenn es um große Datenmengen geht, da ja unter Umständen ein großer Anteil der Daten darin verschoben werden muß[quote]
Nur die 8*Anzahl Bytes der "Strings-Objects" Records müssen verschoben werden. Nicht die gesamten Stringdaten.

Zitat:
wenn man z.B. in einem der Einzelstrings auch nur ein einziges Zeichen einfügt/löscht
Da muss viel weniger verschoben werden, als wenn man einen gesamten String hat, da die Zeile viel kürzer ist. Wenn man aber auf die Text-Eigenschaft zugreift, dann wird das sehr langsam, weil TStringList dann alle Zeilen bei jeden Aufruf zu einem einzigen String zusammensetzt.
Deswegen sollte man die Text-Eigenschaft bei vielen Zeilen nicht so oft aufrufen. Sie optimiert zwar auch, da sie zuerst die Resultat-Länge ermittelt, den Speicher reserviert und dann die Zeilen mittels Move einfügt, aber das dauert eben auch seine Zeit.
  Mit Zitat antworten Zitat