Seit D2006 (glaub ich) ist im Delphi FastMM und später das FastStrings-Projekt teilweise integriert.
Daher sind auch die Strings nun etwas schneller, da die Kopieroperationen optimiert sind.
So können nun z.B. Speicherblöcke Inplace verkleiner und vergrößert (falls Platz da ist) werden, ohne glich den kompletten Speicherinhalt verschieben zu müssen.
Diebezüglich gibt es in der anderen
API keinen guten Realloc-Befehl.
In wie weit aber der anderen
Speichermanager auch langsamer ist (man erinnere sich mal an den alten DelphiMM), hab ich noch nie ausprobiert. (GetMem/FreeMem/Realloc)
Aber schon bei WideString als Parameter (ohne Const), wird bei Prozedureintritt der komplette String kopiert, wärend bei delphis LongStrings nur ein Interlocked-Increment auf den Referenzzähler gemacht wird.