![]() |
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
|
AW: Delphi vs. Freepascal und THashedStringList
Liste der Anhänge anzeigen (Anzahl: 1)
Wurde FastStrings 2009 oder schon 2006 teilweise in Delphi übernommen?
(finde nicht mehr wann es war, aber 2007 hatte der originale Entwickler die Entwicklung eingestellt) Mit 3% (div 33) der Daten dauert es nicht so lang. Das mit dem "Selbsbau"-Hash findet manchmal mehr, wegen Hash-Kollisionen, zu kleinem Hash und da nicht nochmal der String verglichen wird. Und das mit den Generics geht erst nach D2007, bzw. im FPC vermutlich etwas anders.
Code:
// 685.158 in 2.313.748
TArray.BinarySearch 342579 0,97 TArray.BinarySearch.Hash 342708 0,39 TStringList nach über 3 Stunden abgebrochen und mit weniger versucht TStringList.Sorted 342579 3,05 THashedStringList 342579 448,36 THashedStringList.Sorted 342579 334,23 TList<> ...
Code:
Fazit:
// mit DIV 30 = 22.838 in 77.124
TArray.BinarySearch 11419 0,01 TArray.BinarySearch.Hash 11419 0,01 TStringList 11419 153,13 (3min) TStringList.Sorted 11419 0,05 THashedStringList 11419 0,11 THashedStringList.Sorted 11419 0,11 TList<> 11419 9,30 TList<>.Sorted** 11419 9,31 TDictionary<> 11419 0,00 Für normale Mengen an INI-Einträgen ist die Delphi-THashedStringList absolut schwachsinnig. Sortiert ist eine normale StringListe wesenlich schneller und selbst unsortiert ist sie in normalem Umfang immernoch schnell genug. |
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
Das Problem ist, dass schon damals viele der RTL Entwickler von Datenstrukturen und Algorithmen und schon gar nicht von Hardware Effekten (Cache Verhalten und Co) nen Plan hatten. Nativ kompiliert, da wird das schon schnell sein, woll :stupid: |
AW: Delphi vs. Freepascal und THashedStringList
[doppelpost deleted] :oops:
|
AW: Delphi vs. Freepascal und THashedStringList
Och, es muß ja nur die Suchliste sortiert sein.
Was auch so manche Komponente so implementiert. Die originale Liste und zusäzlich ein sortierter Index, mit den Suchmustern und ihren Indizes zur eigentlichen Liste. Pssst: Wozu man wohl das Objects der TStringList missbrauchen können würde? :stupid: (oder gleich ein TDictionary<Key,Index>) |
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
Gruß K-H |
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
oder Format, wo mit einem statischen Puffer auf dem Stack gearbeitet wird, da wird dir schlecht. Oder nimm dir mal den originalen DelphiMM vor. Ein bissl mehr hätte man da schon machen können, ohne gleich so weit zu gehn, wie der FastMM. Gut, der ist "optimaler" für kleine Speicherblöcke, als das was Windows dort nativ (VirtualAlloc) anbietet und wesentlich schon flotter als der MM der OLE32. Und auch viele andere StringFunktionen waren nicht grade "optimal". Auch wenn nur Bruchteile der FastStrings übernommen wurden, war das Ergebnis schon um welten Besser, als die Originale, an denen man Jahrzehnte praktisch nie etwas geändert hatte .... es lief ja, also warum was tun.^ Den StringHelper hat man sich von anderen Programmiersprachen abgeguckt und dabei nur das Interface grob kopiert, aber natülich nichts davon an Pascal und dessen Verhalten angepasst, womit dort nun auch Einiges echt grausam aussieht, obwohl es nagelneu ist, außerdem dachte man nicht weiter und hat somit vieles vergessen, wo man sich fragt wieso gibt es das nichts, obwohl es einem sofort in den Kopf kommt. |
AW: Delphi vs. Freepascal und THashedStringList
Bitte beim Thema bleiben.
|
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
Für mich hat sich das jetzt bestätigt, also weiterhin nicht alles als gegeben hinnehmen. Gruß K-H P.S. Make it run, make it reliable, make it fast. |
AW: Delphi vs. Freepascal und THashedStringList
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 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