Re: Code optimieren
Ich würde pred an der Stelle zum Beispiel nur verwenden um mir eine zeile zu sparen. wobei ich mir das pred in dem genannten Beispiel sparen würde und lieber j mit 0 initialisieren und dafür das inc in der schleife eine Zeile weiter vor holen würde.(wenn es denn der Code sein sollte)
Delphi-Quellcode:
Und je nach dem ob der Ausgangsstring überhaupt danach noch gebraucht wird würde ich das ganze zu einer Procedure wandeln und den Ausgangsstring ändern:
function RemoveChars(const aString: string; Chars: TChars): string;
var i, j: Integer; begin SetLength(Result,Length(aString)); j := 0; for i := 1 to Length(aString) do begin if not(aString[i] in Chars) then begin Inc(j); Result[j] := aString[i]; end; end; SetLength(Result,j); end;
Delphi-Quellcode:
procedure RemoveChars(var aString: string; Chars: TChars);
var i, j: Integer; begin j := 0; for i := 1 to Length(aString) do begin if not(aString[i] in Chars) then begin Inc(j); aString[j] := aString[i]; end; end; SetLength(aString,j); end; |
Re: Code optimieren
Wieso sparst Du da eine Zeile?
Delphi-Quellcode:
oder
SetLength(Result,Pred(j));
Delphi-Quellcode:
macht ja keinen Unterschied. Ich kann auch nicht wirklich begründen, wieso ich im obigen Code Pred() verwendet habe, das mache ich nach Lust und Laune und nicht aus Gründen irgendwelcher Optimierungen.
SetLength(Result,j-1);
|
Re: Code optimieren
das zeile sparen war darauf bezogen wenn man j danach noch verwenden will. Aber stimmt, in genanntem Beispiel wird es nicht mehr verwendet.
|
Re: Code optimieren
Nu Lucky hat recht.
Code:
Delphi generiert für die vier Beispiele jeweils 100 % identischen ASM-Code:
t := i - 1;
t := pred (i); t := i; t := t - 1; t := i; dec (t);
Code:
Ich bin stehts auf der Suche nach Optimierungen hinsichtlich Geschwindigkeit sowie Lesbarkeit für das Schreiben zukünftiger Codes.
004680D4 8BF3 mov esi,ebx
004680D6 4E dec esi Nach dem Test sehe ich für mich keinen Grund meinen Stile durch die Verwendung von pred zu verändern. Meine Frage beantwortet in diesem Falle die deutlich höhere Lesbarkeit des ersten Beispiels. Vielen Dank für das Feedback :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz