Einzelnen Beitrag anzeigen

Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: TFileTime addieren

  Alt 18. Feb 2008, 15:04
Ich häng mich hier mal hintendran, weil ich dasselbe Problem habe, und gerade damit nicht weiterkomme. Ich möchte bestimmen, wieviel Zeit eine Berechnung benötigt, und QueryPerformanceCounter scheint nicht auszureichen (da gibts manchmal Ausreißer, die ich mir nur dadurch erklären kann, dass ein anderer Prozess gerade rumgewerkelt hat). Mein Code sieht so aus:

Delphi-Quellcode:
function GetUsageTime: Int64;
var
  fCreationTime, fExitTime: TFileTime;
  fKernelTime, fUserTime: TFileTime;
  UserTime64, KernelTime64: _Large_Integer;
begin
  GetProcessTimes(GetCurrentProcess, fCreationTime, fExitTime, fKernelTime, fUserTime);

  KernelTime64.LowPart := fKernelTime.dwLowDateTime;
  KernelTime64.HighPart := fKernelTime.dwHighDateTime;
  UserTime64.LowPart := fUserTime.dwLowDateTime;
  UserTime64.HighPart := fUserTime.dwHighDateTime;

  result := KernelTime64.QuadPart + UserTime64.QuadPart;
end;


Function GetAlgorithmTime: Int64;
var s,e: Int64;
begin
      s := GetUsageTime; // Zeit nehmen
      DoAlgorithm; // Berechnung ausführen
      e := GetUsageTime; // Zeit nehmen
      result := e-s; // Differenz ist das Ergbnis
end;
Aber dabei kommen unsinnige Werte bei raus - sehr oft 0, und ab und zu andere Werte, aber dann recht oft derselbe (oder sogar immer). Irgendwas ist also falsch. Oder geh ich die Sache komplett falsch an?
  Mit Zitat antworten Zitat