Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Apr 2012
Nja, in dem Fall war halt der Pascal-Code schon sehr gut.
Wobei ich auch erst dachte da noch was rauszuholen.
Nur 3 Tage später übermannte mich dann die Ernüchterung, als es ans Testen des Assemblercodes ging.
3 Tage Arbeit, für nichtmal 100 Millisekunden Zeitersparnis, bei einer Gesamtlaufzeit von knapp 30 Sekunden ... das war's absolut nicht Wert.
Es gibt auch Intelligenzbestien,...
Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Apr 2012
Wobei Assembler nicht die eierlegende Wollmilchsau ist, wofür man sie oftmals hält.
Ich hatte persönlich auch schon den Fall, daß ich mit Assembler absolut nichts optimieren konnte.
Es war nahezu genauso schnell, wie ein ordentlicher Pascal-Code und die Codeoptimierung des Compilers.
Abgesehn davon, daß man dem Assembler-Code nicht mehr ansehn konnte, was er eigentlich macht. (ohne tausende...
Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Apr 2012
s <> '' und s = '' prüft theoretisch auf die globale Konstante eines Leerstrings ''.
Da ein Leerstring aber einem nil entspricht, ergibt das somit eine Prüfung auf nil, bzw. 0.
Das Length ist eine Funktion und die will erstmal aufgerufen werden, also Sprung (JMP) + Rücksprung (RET), dazu noch eine IF-Abfrage und bis zu zwei ausgelesene Werte (der interne Pointer und die Längenangabe). Erst...
Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Apr 2012
Sowas sollte man auch niemals machen.
Denn fang jetzt mal an dein Programm zu debuggen, wenn da genügend solcher Code drin vorkommt,
dann kannst'e dich auch gleich erschießen, denn sowas macht absolut keinen Spaß mehr.
Im Fall von Zahlen ist das sehr gut beobachtbar:
try
i := StrToInt(s);
except
i := 0;
end;
Forum: Object-Pascal / Delphi-Language
by himitsu,
24. Apr 2012
Wobei es ja auch nicht immer um Schnelligkeit geht.
Denn es kommt auf den Einsatzzweck drauf an.
- wird es sehr oft aufgerufen, dann könnte es schon wichtig sein
- ist die zeit egal, dann ist auch die Geschwindigkeit egal (bzw. es muß nicht unbedingt das Allerschnellste sein)
- und manchmal reicht es, wenn es ausreichend flott ist, aber man dafür wartbaren code bekommt, welchen man...