Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: schnelstmöglich dividieren?
27. Mai 2011, 18:12
Bist Du Dir mit den 7864320 /s sicher?
Mit Intel Core 2 Q6600 2,4 GHz 2,4 Ghz 250-300 ms (laut GetTickCount).
Delphi-Quellcode:
function J: integer;
begin
Result:= Random(10000)+1;
end;
procedure TForm1.Button11Click(Sender: TObject);
const
N = 7864320;
var
T: cardinal;
Ergebnis1, Ergebnis2, Ergebnis3,
Wert,
A, B, C,
X1, Y1, Z1,
X2, Y2, Z2,
X3, Y3, Z3: integer;
I: integer;
S: double;
begin
A:= J;
B:= J;
C:= J;
X1:= J;
X2:= J;
X3:= J;
Y1:= J;
Y2:= J;
Y3:= J;
Z1:= J;
Z2:= J;
Z3:= J;
Wert:= J;
S:=0;
T:= GetTickCount;
for I:= 1 to N do
begin
Ergebnis1:= (A*X1 + B*Y1 + C*Z1) div Wert;
Ergebnis2:= (A*X2 + B*Y2 + C*Z2) div Wert;
Ergebnis3:= (A*X3 + B*Y3 + C*Z3) div Wert;
S:= S+Ergebnis1+Ergebnis2+Ergebnis3; // damit die CodeOptimierung ..
end;
ShowMessage (IntToStr(GetTickCount-T));
ShowMessage (FloatToStr(S)); // .. nicht zuschlägt
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;
|
|
Zitat
|