Hi!
Beim Performancevergleich einiger Befehle ist mir etwas merkwürdiges aufgefallen.
Inkrementiere oder dekrementiere ich im folgenden Beispiel die Variable i, so benötigt die Routine laut GetTickCount-Zähler weniger Zeit, als wenn ich dies nicht tue!
Das ganze habe ich nun mehrfach ausprobiert. Für die Variante mit Änderung d. Var. benötigt das Programm auf meinem Rechner gut 500ms weniger.
Anbei, inc oder dec hat in diesem Fall den selben Effekt wie i := i +/- a! mit a = 0,1,2,3..n
Zudem taucht dieses Phänomen nur auf, wenn ich vorher das X negiere.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var i,x: integer; s: integer; begin s := gettickcount;
for x := 1 to high(integer) do begin i := -x; i := i + 0; end;
s := gettickcount - s; ... |
Über den Sinn und Zweck des Programmes lässt sich diskutieren...
Hat aber wer eine Idee, wie dies zustande kommen könnte?
Kann jemand das Problem reproduzieren?
Cheers,
Marc