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).