Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#45

AW: Alternative zu PosEx

  Alt 2. Dez 2024, 15:50
Bei mir Delphi 12.
Der Zeitunterschied verschindet bei mir praktisch, wenn statt '7' nach "77" gesucht wird.
Da in beiden Fällen der gesamte String durchsucht wird, meine Vermutung:
Die vielen Aufrufe von Pos bremsen (sind ja nicht inline).
Die Suche selbst innerhalb von Pos scheint optimal (zumindest in Delphi 12).

Eigentlich wollte ich nur die Verwendung von SetLength demonstrieren, damit man die Anzahl der Ergebnisse nicht vorher raten muss.
Zu "inline"
Könntest Du mal prüfen, ob bei Dir der Aufruf von "Search" tatsächlich "inline" abgewickelt wird.
Bei mir, obwohl als inline deklariert, jedenfalls nicht.
Code:
Mersenne_Main.pas.7011: while Search(SearchFor, SearchIn, Index) do
005B6B61 55               push ebp
005B6B62 8D4DEC          lea ecx,[ebp-$14]
005B6B65 8B55F8           mov edx,[ebp-$08]
005B6B68 8B45FC          mov eax,[ebp-$04]
005B6B6B E848FFFFFF      call Search
005B6B70 59               pop ecx
005B6B71 84C0             test al,al
005B6B73 75B0             jnz $005b6b25
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat