Dann testet doch mal eure Routinen, indem ihr alle 1000 Durchläufe eine
Exception auslöst. Das dürfte ganz erhebliche Performance einbußen bringen. Baut doch einfach mal eine Division durch Null ein:
Delphi-Quellcode:
Var
c,i : Cardinal;
r : Real;
begin
c := getTickCount;
r := 0;
For i:=1 to 20000000 do
begin
if (i div 1000) = (i/1000) then
r := r
else
r:=r+r/i;
end;
memo.Lines.Add(intToStr (GetTickcount - c));
c := getTickCount;
r := 0;
For i:=1 to 20000000 do
begin
try
if (i div 1000) = (i/1000) then
r := r / 0;
else
r:=r+r/i;
except
end;
end;
memo.Lines.Add(intToStr (GetTickcount - c));
end;
Habe das jetzt nicht bei mir geprüft, aber das Ergebnis sollte deutlich sein.
@alzaimar:
Hier gehts doch nicht um Übersichtlichkeit.