目錄
- 1. 進程的CPU使用者時間和核心程式的時間
- 2. 全部CPU的使用統計
- 3. 原始碼下載
返回目錄
1. 進程的CPU使用者時間和核心程式的時間
使用Process類的UserProcessorTime和PrivilegedProcessorTime屬性可以返回當前進程所耗費CPU的使用者和核心程式的時間。Process.TotalProcessorTime則代表兩者之和。它們都返回TimeSpan結構體對象。
使用這三個屬性,可以做一個簡單的程式進行進程的CPU時間監控。
如下:(當然在CPU不是很慢的情況下,進行某個操作後不會看到明顯的CPU時間增加)
返回目錄
2. 全部CPU的使用統計
統計全部CPU的使用狀況,最簡單的方法就是使用Windows的工作管理員程式。但預設是只顯示“非空閑”執行時間的百分比。在Windows 7工作管理員視圖菜單裡有“顯示核心程式的時間”這一項,這樣的話,使用者時間和核心程式的時間就區分開了。核心程式的時間是紅色部分,如:
在編程上,使用效能計數器可以進行更詳細的CPU時間監控。比如下面自己做一個CPU使用監控的程式:
使用的效能計數器是Processor類中的:
- % Idle Time: 代表空閑
- % Interrupt Time: 代表處理硬體中斷
- % User Time: 代表處理使用者指令
- % Privileged Time: 代表作業系統核心指令
- % Processor Time: 代表所有非空閑時間(也是工作管理員預設顯示的)
(所有上面的效能計數器返回百分比!)
你可以在控制台的效能監控器中查看這些資訊(或者在運行中鍵入:perfmon)
最後需要注意的一點就是PerformaceCounter類(System.Diagnostics命名空間內)的GetNextValue方法進行下一個值的擷取步驟時,雖然該方法返回float,但這個百分比時是已經規格化好的,從0.0到100.0的,而不是0.0到1.0的。
返回目錄
3. 原始碼下載
目前的版本的程式和原始碼下載
下載頁面
注意:連結是微軟SkyDrive頁面,下載時請用瀏覽器直接下載,用某些下載工具可能無法下載
原始碼環境:Visual C# Express 2010