如何取得 cpu 的頻率

有關Delphi 的語法, 程式, 等
回覆文章
頭像
tim
文章: 1380
註冊時間: 2008年 11月 26日, 00:49

如何取得 cpu 的頻率

文章 tim »

How to get CPU frequency?

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 的頻率.
多多留言, 整理文章, 把經驗累積下來.....
回覆文章