http://www.delphir.itgo.com/Tips/How%20 ... quency.htm
代碼: 選擇全部
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;
使用 QueryPerformanceFrequency 及 QueryPerformanceCounter 這兩個 window api 以取得 cpu 的頻率.