cpu頻率程式的Bug |
尚未結案
|
fancy
一般會員 發表:19 回覆:19 積分:7 註冊:2003-10-02 發送簡訊給我 |
以下是小妹根據別人的程式或資料修改成bcb語法(我已經忘了從哪得來的)
測cpu頻率的程式 int __fastcall TForm1::Frequence_MHz()
{
LARGE_INTEGER ulFreq, ulTicks, ulTicksend,ulResult;
__int64 ulEAX_EDX, ulStartCounter,ulEndCounter,ulValue,ulValue2,x; // it is number of ticks per seconds
QueryPerformanceFrequency(&ulFreq);
x=ulFreq.QuadPart/1000*50;
// current valueofthe performance counter
QueryPerformanceCounter(&ulTicks);
_asm {
rdtsc
mov DWORD PTR ulEAX_EDX, EAX
mov DWORD PTR (ulEAX_EDX + 4), EDX
}
ulStartCounter = ulEAX_EDX;
do {
QueryPerformanceCounter(&ulTicksend);
} while (ulTicksend.QuadPart - ulTicks.QuadPart
|
mkbobo
一般會員 發表:4 回覆:68 積分:19 註冊:2003-04-10 發送簡訊給我 |
int __fastcall TForm1::Frequence_MHz() { LARGE_INTEGER ulFreq, ulTicks, ulTicksend,ulResult; __int64 ulEAX_EDX, ulStartCounter,ulEndCounter,ulValue,ulValue2,x; // it is number of ticks per seconds QueryPerformanceFrequency(&ulFreq); x=ulFreq.QuadPart/1000*50; // current valueofthe performance counter QueryPerformanceCounter(&ulTicks); _asm { rdtsc mov DWORD PTR ulEAX_EDX, EAX mov DWORD PTR (ulEAX_EDX 4), EDX } ulStartCounter = ulEAX_EDX; do { QueryPerformanceCounter(&ulTicksend); } while (ulTicksend.QuadPart - ulTicks.QuadPart我不知道為何~~我沒有XP 用2000測試正常 但是個人認為有可能是 QueryPerformanceFrequency(); QueryPerformanceCounter(); 這兩個被動手腳了 這是WINDOWS 的API 你無法知道它怎麼算出頻率的 這程式雖然有利用到ASM 但是本體還是用到了WINDOWS的API 如果這兩個會去參考到redegit裡面的頻率 簡單的說 沒輒~~^^" 或許你可以在找找看網路上還有沒有別的可以用拉 |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
如同 mkbobo 所說,雖然是叫用 ASM CODE 但還是會因系統而異,
以 rdtsc 判斷 CPU 頻率的方式結果應該都是這樣,而目前大多數的軟體也都還是這樣"誤報",不過,會發生這種狀況的只在筆記型電腦上會發生,一般桌上型的應該是不會,除非有用特殊的軟體...
以個人認為最強的工作管理員 【推薦】TaskInfo 系統狀態監視器(很詳細喔)
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28254 也是一樣,在我故意將 CPU 速度線上調慢時,TaskInfo 還是判斷出沒有降速的 CPU 頻率。
不過,在「我的電腦」右鍵內容視窗中,則可以看到真實的 CPU 頻率,我想,應該是有其他可用又不為人知的 API 或指定可以使用... 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
fancy
一般會員 發表:19 回覆:19 積分:7 註冊:2003-10-02 發送簡訊給我 |
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |