Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#14

AW: Löschversuch funktioniert nicht

  Alt 16. Aug 2018, 23:11
Seit mehr als 10 Jahren bestimmt. (spätestens seit FastStrings in Delphi übernommen wurde).
Die Unit StrUtils existiert schon ein Weilchen.



Copy/LeftStr oder Delete ist hier fast gleich performant, aber beim Copy hast den Vorteil, dass es nicht erst in einer Variable zwischengespeichert werden muß, da Funktion <> Prozedur.

Theoretisch ist Delete performanter, da es direkt den String behandelt und nichts umkopiert (so lange es nur eine Referenz auf den String gibt), also "inplace" den String behandelt, ohne dass "oftmals" überhaupt der Speichermanager ran muß, was hier aber eh sinnlos ist, da das Ergebnis am Ende sowieso wieder an die Komponente übertragen (kopiert) werden muß.



Ohne FastMM sind aber so Dinge wie Einzelcharoperationen einfach nur krank,
aber obwohl ab da "größerer" Speicher auch inpace vergrößert/verkleinert werden kann, so lange dahinter noch genug frei ist (kleinere Blöcke gibt es nur in gleichgroßen Gruppen, also ist dahinter nie etwas frei), bringt das hier nichts.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Aug 2018 um 23:16 Uhr)
  Mit Zitat antworten Zitat