Windows下獲取CPU頻率

2021-07-10 06:19:49 字數 878 閱讀 7426

一直想在windows下取得cpu的時鐘速度,找了好久終於找到了函式callntpowerinformation,要想使用它,首先必須包含powrprof.h標頭檔案和鏈結庫powerprof.lib.但是還有幾個問題:

首先powrprof.h和許多其它在platform sdk中的標頭檔案一樣依然沒有被c++驗證,如果你在c++程式中包含它的時候如果不小心,依然會有鏈結錯誤。最好這樣包含它:

extern

"c"第二個原因是有乙個結構不知道什麼原因沒有包含在powrprof.h中,這個結構是processor_power_information.在visual c++ 2008 express edition中仍然存在這個問題。為了取得正確的處理器速度,我們需要呼叫callntpowerinformation。processorinformation列舉值是第乙個引數,processor_power_information 結構的乙個陣列作為output快取(對應於每乙個安裝在系統中的處理器晶元)。

一種解決的辦法是:這個結構因為在msdn中有定義,所以我們可以在我們自己的檔案裡定義它:

typedef

struct

_processor_power_information

processor_power_information,*

pprocessor_power_information

;

從processor_power_information這個結構的定義中你可以發現,這個結構提供cpu速度的資訊,例如最大速度,當前速度,和空閒狀態(儘管我承認我不知道空閒狀態位--我會去解決的)有乙個相關的api函式getpwucapabilities,它也可以取得系統的一些效能。

linux獲取cpu溫度控制風扇頻率

思路 底層驅動端建立執行緒不通過上層控制獲取cpu溫度模擬pwm控制風扇頻率 主要函式 kthread run 執行緒建立函式 filp open 底層用於開啟檔案 get fs 取得當前的位址訪問限制值 set fs 設定當前的位址訪問限制值,其巨集值有兩個kernel ds設定為核心空間,use...

windows下禁用CPU導致CPU資源過高

接km公司技術人員反饋,使用者新安裝的一台windows200864位his伺服器,資料庫版本是10.2.0.4,將業務遷移到新伺服器後正常運 況下cpu資源占用異常的高,經常達到100 導致業務經常卡頓,使用者檢視資源管理器未發現異常程序,cpu資源大部分被oracle程序占用。步驟一 首先分析會...

Windows程式設計 獲取系統CPU 個數

隨著多核cpu的普及,程式中有必要考慮利用多核的優勢來提高效能。比如當建立執行緒池或者程序池的時候,可以根據系統cpu的個數來設定執行緒池 程序池的大小。以下 示例如何獲取cpu的個數。view plaincopy to clipboardprint?typedef void winapi pgns...