Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
10. Apr 2006
Es hängt auch von der verwendeten CPU ab, da diese manche Befehle schneller als andere ausführen.
Dabei müsste man trotzdem eine Kopie des Strings anfertigen, wenn man nicht mit StringReplace-Methoden arbeiten will (Delete+Insert). Und mit einem Rückgabe-String ist die Funktion etwas mächtiger und man kann sie mit Funktionsaufrufen speißen.
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
10. Apr 2006
Wenn du jetzt das @XXX noch durch ein PChar(XXX) ersetzt, dann gewinnst du nochmal Zeit, denn @S bewirkt einen UniqueString()-Aufruf. Und das jedes mal. Result ist aber schon ein neuer String, da er mit SetLength neuen Speicher bekommen hat. Ein UniqueString Aufruf ist also nicht notwendig und kostet nur Zeit.
Ihr streitet euch jetzt nicht ernsthaft um ein paar ms Prozessorzeit, oder?
Bis...
Forum: Object-Pascal / Delphi-Language
Delphi
by jbg,
10. Apr 2006
Wobei man deine Funktion auch noch mit ein paar kleineren Änderungen schneller machen kann.
Das fängt z.B. schon mal damit an, dass man sich das InStr in eine lokale Char Variable zwischen speichern kann (die dann vom Compiler in ein Register geschoben wird). Des weiteren ist es schneller, wenn man InStr schreibt, und I von 0 bis Length-1 laufen lässt (am besten auch noch rückwärts, die die...