Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Anzahl eines Zeichens im String ermitteln

  Alt 13. Jul 2018, 18:10
Jetzt wird's aber interessant! Hier mal die Laufzeiten für Win64 (die ASM-Funktion fällt da logischerweise raus):
Zitat:
00000 Calibrate
03719 1234588 miep
07360 Ydobon
03548 marabu
04122 Missionar
03711 alzaimar
08399 Uwe Raabe StringCountChar
03597 Uwe Raabe StringCountCharFor
02869 KodeZwerg CountCharInString
07099 KodeZwerg CharInStringA
Neutral General CharCountAsm - Target missed: 0 <> 7982
00000 Neutral General CharCountAsm
02183 Uwe Raabe CharCount
03043 Egon Hugeist CharCount_1
03678 Egon Hugeist CharCount_2
02816 Egon Hugeist CharCount_Double_Sided
04076 Delphi CountChar
Der große Verlierer ist hier erstaunlicherweise StringCountChar
Delphi-Quellcode:
  Result := 0;
  for Ch in S do begin
    Inc(Result, Ord(Ch = C));
  end;
während die normale For-Schleife nicht so stark einbricht
Delphi-Quellcode:
  Result := 0;
  for I := Low(S) to High(S) do begin
    Inc(Result, Ord(S[I] = C));
  end;
Die CharCount scheint allerdings vom 64-Bit Compiler zu profitieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat