Einzelnen Beitrag anzeigen

Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#10

Re: cpu zeit einer schleife auslesen

  Alt 5. Jun 2008, 21:00
Zitat von ferby:
Hello,

wir müssen doch nur die Zeitdiverenz messen....

Gibt es in Delphi eine Funktion, die mir die Anzahl der Sekunden seit 1.1.1970 zurückliefert?
So wie die Time Funktione in C?
Ich dachte das Ganze soll unabhängig ablaufen?
Die Zeitdifferenz wird davon beeinflusst, was "im Hintergrund" so noch abläuft, aber wenn doch ungenauere Werte reichen sollte, kannst du das hiermit (am besten mehrfach) austesten:

Delphi-Quellcode:
procedure TForm1.UngenauMessen;
var
  Zeit: Cardinal;
begin
  Zeit := GetTickCount;

  //Befehlesfolge deren Zeitdauer bestimmt werden soll
  sleep(2000);
  //

  Button1.Caption:= (IntToStr(GetTickCount - Zeit) + ' ms');
end;
oder genauer, aber rechenintensiver:

Delphi-Quellcode:
procedure TForm1.GenauMessen; //genauer aber mehr Ressourcenverbauch
var
  a, b, c: Int64;
begin
  QueryPerformanceFrequency(a);
  QueryPerformanceCounter(b);

  //Befehlesfolge deren Zeitdauer bestimmt werden soll
  sleep(2000);
  //

  QueryPerformanceCounter(c);

  Button1.Caption:= Format('%.3f ms',[(c - b) * 1000 / a]); //Ausgabe in ms
end;
Hoffe das ist hilfreich.
  Mit Zitat antworten Zitat