Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.443 Beiträge
 
Delphi 12 Athens
 
#85

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 15:20
Funktioniert diese Version bei euch?
Ja, funktioniert jetzt. Allerdings ist das Zeitverhalten (mit Optimierung) noch schlechter als die Standardfunktion CountChar im StringHelper und damit landet die Lösung in der hiesigen Rangliste auf dem drittletzten Platz. Lediglich die StringReplace-Lösung und die AnsiString-Lösung (vermutlich wegen der bei jedem Aufruf nötigen Umwandlungen) sind noch langsamer.

Hier meine Zeiten für einen Teststring mit 500000 ASCII-Zeichen, Suche nach 'X', jeweils 10000 Calls, Zeiten in Millisekunden:

Zitat:
00000 Calibrate
02292 Uwe Raabe CharCount
02633 KodeZwerg CountCharInString
02953 marabu
03024 Uwe Raabe StringCountCharFor
03046 Egon Hugeist CharCount
03070 Uwe Raabe StringCountChar
03745 Delphi CountChar
03795 alzaimar
03876 Missionar
04028 Neutral General CharCountAsm
05893 Ydobon
06936 KodeZwerg CharInStringA
Eine Kalibrierung des Benchmarks mit einer Fake-Funktion, die aus einem simplen Result := 0 besteht, brachte erwartungsgemäß 0 ms. Die übrigen Werte schwanken bei wiederholten Aufrufen um weniger als 10%.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat