Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#10

Re: Set of WideChar (TDynamicCharSet)

  Alt 13. Feb 2010, 15:46
OK, daß ich geschwindigkeitsmäßig nicht an Peters IWidecharSet rankomm, war ja zu erwarten
- keine assembleroptimierten Codeteile
- und die dynamische Speicherverwaltung benötigt auch mehr Abfragen, Bereichsprüfungen und Kopierarbeiten

Allerding bin ich positiv überrascht, daß es vorallem beim Erstellen/Erstzuweisung und beim Auslesen garnicht mal so langsam ist, wie ich befürchtet hab.

Dagegen ist aber der Speicherverbrauch im Einsatz wohl um weit mehl als 50% geringer
und im Extremfall (beim Zeichenvorrat der deutschen Sprache) würden bis zu 99% gespart.

OK, daß meine Codes auch in der EXE weniger Platz verbrauchen, ist nicht wirklich von Belangen,
denn es fällt nur so sehr auf, weil die Text-Anwendungen sehr klein sind.
(ob es nun 40 KB oder 50 KB mehr sind, im Vergleich zum TSysCharSet)

Mein SET hat jetzt auch noch ein .ReadOnly bekommen, aber da es keinen Kopier-Klassen-Operator gibt,
wird dieser Status bei := leider mitkopiert.
Delphi-Quellcode:
// hier ist dann auch VarSet als ReadOnly deklariert
VarSet := ConstSet;

// so ginge es aber
VarSet.Fill(ConstSet);
Code:
***** TDynamicCharSet *****

size test [a..z]:  100.000 sets -   3,81 MB - 0,25 sec
size test [#$FFFF]: 100.000 sets - 786,21 MB - 0,55 sec
high-low fill test:       1,34 sec
low-high fill test:       1,31 sec
low exitst read test:     0,64 sec
low non exitst read test: 0,64 sec
high non exitst read test: 0,66 sec

***** IWidecharSet *****

size test [a..z]:  100.000 sets - 785,83 MB - 0,47 sec
size test [#$FFFF]: 100.000 sets - 785,83 MB - 0,52 sec
high-low fill test:       0,11 sec
low-high fill test:       0,14 sec
low exitst read test:     0,45 sec
low non exitst read test: 0,89 sec
high non exitst read test: 0,48 sec

***** TSysCharSet / Set of AnsiChar *****

size test [a..z]: 100.000 sets - 3,05 MB - 0,015 sec
size test [#$FFFF]:       not supported
high-low fill test:       0,02 sec
low-high fill test:       0,02 sec
low exitst read test:     0,08 sec
low non exitst read test: 0,08 sec
So, das sollte jetzt hoffentlich vorerst einmal das Ende des täglichen Updatemarathons sein.
Für mein anderes Projekt scheinen nun erstmal keine weiteren Wünsche/Notwendigkeiten mehr offen zu sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat