Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Gibt es einen schnelleren Stringvergleich als if S1 = S2

  Alt 16. Sep 2012, 15:27
Gut, das mit den "identischen" String-Instanzen hab ich mal mit in den Code aufgenommen.

CompareMem wurde auch schon optiiert (hoffe ich), z.B. im FastMM wurden derart optimierte Vergleichs-/Kopiercodes integriert, welche bei kleinen Speicherblöcken optimierte Codes verwenden, die keine Schleifen und dafür teilweise MMX-Register verwenden.

Nein ich denke eher nur dann. Beispiel (hier schlägt der Vergleich fehl):
Du mußt natürluch auch wissen was du vergleichst.

Meine Funktion war die Vorgehensweise bei LongStrings (AnsiString, wideString, UnicodeString).

Doch ein ShortString verfügt über ein anderes Speichermanagent.
Die Delphiimplementation dieses Vergleichs beachtet deswegen die Größenangabe ersten Byte (Index 0) und vergleicht NUR die reinen Stringdaten, denn hinter dem String sind die Daten zufällig/unbestimmt.

'abc' = 'abc' im Delphicode und mit einem String[6] sieht eventuell so aus #3'abc'#x#x#x = #3'abc'#x#y#z (Llngenbyte + Text + KEINE #0 + Sonstewas).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (16. Sep 2012 um 15:32 Uhr)
  Mit Zitat antworten Zitat