Hat denn auch mal jemand getestet, wie lange die erste Schleife braucht, wenn Chars sehr groß ist (1 GB oder mehr)?
Lange braucht sie.
Aber hast du auch hinterfragt, wie lange "Pos" braucht, um X Mal ein Zeichen in einem 1GB-String NICHT zu finden?
Hab ich mal gemacht, aber mit "nur" 1 MB.
Delphi-Quellcode:
SetLength(R,1000000);
for I:=1 to Length(R) do R[I]:=Chr(Random(26)+Ord('A'));
32 Bit Umgebung
Ergebnisse gleich
Min und Max CPU-Ticks für 1 Durchläufe
T1 Min 1529298460 Max 1529298460
T2 Min 6510004 Max 6510004
PS:
R ist hier nicht die in meiner Test-Prozedur deklarierte Konstante sondern eine Variable.