17 Ağustos 2011 Çarşamba

CPU hızını öğrenme-02


functionRDTSC:Int64;assembler;
asm
db$0F,$31
end;

functionRDQPC:Int64;
begin
QueryPerformanceCounter(result);
end;

functionCPUSpeed:Integer;
varf,tsc,pc:Int64;
begin
ifQueryPerformanceFrequency(f)thenbegin
Sleep(0);
pc:=RDQPC;
tsc:=RDTSC;
Sleep(100);
pc:=RDQPC-pc;
tsc:=RDTSC-tsc;
result:=round(tsc*f/(pc*1000000));end
elseresult:=-1;
end;

procedureTForm1.Button1Click(Sender:TObject);
begin
label1.caption:=Format('%dMhz',[CPUSpeed]);
end;end.