Zitat:
Unten genannte Tests sowie Zeitmessung eingearbeitet: Es ist ein komplettes Projekt mit Funktions- und Speed-Test. Bitte versucht, Teile davon zu optimieren (
ASM, Pointer arithmetic etc.).
isch hab noch bissi dran rumgeschraubt *g*
zumindest für einen Seperator mit der Zeichenlänge eins
bist Du noch schneller mit
asm + strings, als mit einer optimierten Pointerlösung ? .. würde mich jetzt mal interessieren
Hier der Vergleich auf einem "alten" 3200+ AMD als Referenz ...
-------------------------------------------------
Compiliertes Eingangsbeispiel von alzaimar
-------------------------------------------------
100 chars per line: 1000000 lines in 6469 tics, 154583 lines per sec, 15,1 mb/s (del = ";")
10000 chars per line: 50000 lines in 9594 tics, 5212 lines per sec, 50,9 mb/s (del = ";")
1000000 chars per line: 500 lines in 3953 tics, 126 lines per sec, 123,5 mb/s (del = ";")
------------------------------------------------
mit Delphi 2007 compiliert ( Codegear hat ein paar Lösungen vom Fastcode Projekt intern integriert)
-------------------------------------------------
Using TStringDivider in TStringList
100 chars per line: 1000000 lines in 3844 tics, 260146 lines per sec, 25,4 mb/s (del = ";")
10000 chars per line: 50000 lines in 4375 tics, 11429 lines per sec, 111,6 mb/s (del = ";")
1000000 chars per line: 500 lines in 3641 tics, 137 lines per sec, 134,1 mb/s (del = ";")
-------------------------------------------------
TFastStringExploder .....
-------------------------------------------------
Using TStringExploder in TStringList
100 chars per line; Itemlänge: 10; 1000000 lines in 937 tics, 1067236 lines per sec, 104,2 mb/s (del = ";")
10000 chars per line; Itemlänge: 100; 50000 lines in 1234 tics, 40519 lines per sec, 395,7 mb/s (del = ";")
1000000 chars per line; Itemlänge: 1000; 500 lines in 968 tics, 517 lines per sec, 504,4 mb/s (del = ";")