![]() |
AW: Frage zu DLL
Zitat:
- und es gibt vorallem keine Referenzzählung - dafür wurden intern auf die WinAPI umgeleitet, welche in anderen Programmiersprachen auch verwendet werden kann und wü es teilweise auch passende Wrapper gibt > SysAllocStringLen SysStringLen SysFreeString (oleaut32.dll) |
AW: Frage zu DLL
Zitat:
Der Unterschied war nicht nur "ein Hauch" sondern gewaltig. |
AW: Frage zu DLL
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz