Delphiran - Delphi Tips Question : How can I get
CPU frequency ?
Answer :
function RDTSC : Int64; assembler; asm db $0F,
$31 // opcode for
RDTSC end;
function
RDQPC : Int64; begin QueryPerformanceCounter(result);
end;
function CPUSpeed : Integer; var f,tsc,pc : Int64; begin if
QueryPerformanceFrequency(f)
then begin Sleep(0); pc := RDQPC;
tsc := RDTSC;
Sleep(100);
pc := RDQPC-pc; tsc := RDTSC-tsc;
result := round(tsc*f/(pc*1000000)); end else result := -1; end;