Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Frage zu DLL (https://www.delphipraxis.net/177829-frage-zu-dll.html)

himitsu 1. Dez 2013 10:42

AW: Frage zu DLL
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1238067)
WideStrings sind verglichen mit den UnicodeStrings von Delphi krottenlangsam.

- der andere Speichermanager ist einen Hauch langsamer
- 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)

Bernhard Geyer 1. Dez 2013 12:24

AW: Frage zu DLL
 
Zitat:

Zitat von himitsu (Beitrag 1238072)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1238067)
WideStrings sind verglichen mit den UnicodeStrings von Delphi krottenlangsam.

- der andere Speichermanager ist einen Hauch langsamer

Hauch ist gut. Ich hatte Performanceuntersuchungen gemacht D6-Widestrings und XE2 mit Unicodestrings.
Der Unterschied war nicht nur "ein Hauch" sondern gewaltig.

himitsu 1. Dez 2013 14:28

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 11:05 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz