![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - 請教如何寫偵測'cpu現時頻率'的程式?
(https://www.pcdvd.com.tw/showthread.php?t=1004393)
|
---|
請教如何寫偵測'cpu現時頻率'的程式?
如題 請問如何寫偵測'cpu現時頻率'的程式?
因為現在只有找到偵測cpu百分比的方法 Ps. C & C++ & VB 都可以 謝謝 |
要顯示在桌面上的話,AIDA64加Sumurize就可以了
|
MS window 嗎? 用 WMI 應該沒有撈不出來的
For example: powershell http://stackoverflow.com/questions/...ove-from-output |
老實講你真的要準確的話得去看I和A兩家CPU公佈的資料裡面有很多可以參考的
ex: http://www.intel.com/content/www/us...ction-note.html 不然土法煉鋼像這樣的寫法: void GetProcessorSpeed() { double dCPUSpeedMHz = 0.0; wchar_t sCPUSpeedMHz[1024]; LARGE_INTEGER qwWait, qwStart, qwCurrent; QueryPerformanceCounter(&qwStart); QueryPerformanceFrequency(&qwWait); sCPUSpeedMHz[0] = 0; qwWait.QuadPart >>= 5; unsigned __int64 Start = __rdtsc(); do{ QueryPerformanceCounter(&qwCurrent); }while(qwCurrent.QuadPart - qwStart.QuadPart < qwWait.QuadPart); dCPUSpeedMHz = ((__rdtsc() - Start) << 5) / 1000000.0; swprintf_s(sCPUSpeedMHz, 1024, _T("%f"), dCPUSpeedMHz); MessageBox(sCPUSpeedMHz, _T("CPU MHz"), MB_OK); } 你得到的永遠不會是正確的頻率,尤其是現在的CPU都會自動變速... |
引用:
而且程式沒寫好造成loading上升,CPU還會自動提速:laugh::laugh:.... |
引用:
是的! 像在下po的土法煉鋼就是這樣只能測到max值或者提速後的數據, 然後WMI去撈資料也是沒用...只要OC過完全不準外加好像也只能得到 固定數據. 目前像CPU-Z那種通常都是照A/I兩家出的資料然後透過CPU定義的固定 方式取得才是最準確的. |
A社原廠軟體AMD Power Monitor可以即時監控每一核心各自「真實電壓」及「真實時脈」,包括TurboCore時的「自動加壓」及「衝刺時脈」,降壓超頻一樣正確呈現,再附贈NB電壓及時脈:
http://forum.pcdvd.com.tw/showpost....61&postcount=17 跟另一套更肥又易當的原廠軟體AOD(AMD OverDrive)的顯示方式和數據類似,現在版本是4.2.6: http://sites.amd.com/us/game/downlo...s/overview.aspx 也許可到A社搜搜有沒釋出此類原廠軟體的文件甚至源碼... http://sites.amd.com/us/Documents/A...lease_Notes.pdf 之前像石牌主機板自家的CnQ工具軟體就無法正確偵測時脈,也無法打檔: http://www.pcdvd.com.tw/showthread....01&page=8&pp=10 |
http://stackoverflow.com/questions/...lways-returns-0
用 RDTSC 來算即時 CPU 速度, Turbo core 也可用, 上面例子 inline 用Linux asm, Visual Studio 要改一下 |
所有的時間均為GMT +8。 現在的時間是11:18 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。