Zusammenfassung bisheriger Ergebnisse
Funktioniert. Zeit kann gemessen werden ohne Probleme.
Delphi-Quellcode:
// Start
procedure HiPerfCounter.Start;
begin
try
QueryPerformanceFrequency(freq);
QueryPerformanceCounter(time1);
except
on E:
Exception do begin
ShowMessage('
HiPerfCounter reported an Error. QueryPerformanceCounter is not supported.');
end;
end;
end;
Auszug aus dem JCL Counter:
Funktioniert nicht, obwohl hier genau das gleiche passiert: QueryPerformanceFrequency(FFrequency) liefert NULL zurück. WIESO?
Delphi-Quellcode:
constructor TJclCounter.Create(const Compensate: Boolean);
const
Iterations: Integer = 10000;
var
Count: Integer;
TmpOverhead: Int64;
begin
inherited Create;
{$IFDEF MSWINDOWS}
if not QueryPerformanceFrequency(FFrequency) then
raise EJclCounterError.CreateRes(@RsNoCounter);
{$ENDIF MSWINDOWS}
{$IFDEF LINUX}
FFrequency := 100000; // 1 sec = 10E6 microseconds, therefore we have to divide by 10E5
{$ENDIF LINUX}
FCounting := False;
FOverhead := 0;
......................
..........