Einzelnen Beitrag anzeigen

uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#1

For While Repeat Unterschied in der Geschwindigkeit

  Alt 2. Apr 2007, 12:44
Hallo,

habe mir mal Gedanken über die Geschwindigkeitsunterschiede der verschiedenen Schleifen gemacht.

Habe diese mit folgendem Code getestet

Delphi-Quellcode:
procedure TMain.BtnForClick(Sender: TObject);
var Start, Stop, c : TLargeInteger;
    i, x : Integer;
begin
  QueryPerformanceFrequency(c);
  QueryPerformanceCounter(Start);
  x := 1;

  for i := 1 to 2147483647 do x := x + 1;

  QueryPerformanceCounter(Stop);
  Label1.Caption := Format('Time: %g s',[(Stop-Start)/c]);
end;

//------------------------------------------------------------------------------

procedure TMain.BtnWhileClick(Sender: TObject);
var Start, Stop, c : TLargeInteger;
    i, x : Integer;
begin
  QueryPerformanceFrequency(c);
  QueryPerformanceCounter(Start);
  x := 1;

  while x < 2147483647 do x := x + 1;

  QueryPerformanceCounter(Stop);
  Label2.Caption := Format('Time: %g s',[(Stop-Start)/c]);
end;

//------------------------------------------------------------------------------

procedure TMain.BtnRepeatClick(Sender: TObject);
var Start, Stop, c : TLargeInteger;
    i, x : Integer;
begin
  QueryPerformanceFrequency(c);
  QueryPerformanceCounter(Start);
  x := 1;

    repeat
      x := x+1;
    until (x = 2147483647);

  QueryPerformanceCounter(Stop);
  Label3.Caption := Format('Time: %g s',[(Stop-Start)/c]);
end;
Denkt Ihr es ist fair, dass auf diese Art zu vergleichen?

Im Anhang der komlette Source und ein ScreenShot.
Miniaturansicht angehängter Grafiken
screenshot_433.jpg  
Angehängte Dateien
Dateityp: zip for_-_while_-_repeat_test_562.zip (6,1 KB, 12x aufgerufen)
Uwe
  Mit Zitat antworten Zitat