首頁 » C#開發 » [C#] CPU與記憶體使用量(同VisualStudio診斷工具)

[C#] CPU與記憶體使用量(同VisualStudio診斷工具)

作者:

分類:

寫影像處理程式時,可能會一次性處理大量的影像資料,或是用相機做即時視覺檢測,要在完成任務後需要手動將資源釋放,才得以應付大量的影像吞吐量,因此特別需要注意系統資源運用問題,好比CPU使用率、記憶體的佔用量…等。

在開發過程中VisualStudio提供方便的診斷工具,可以即時的檢視目前資源的使用量,藉此觀察是否CPU、記憶體過載。

VS診斷工具
VS診斷工具

另外,VS診斷工具的記憶體使用量對應工作管理員的認可大小,跟記憶體的欄位會有落差。

開啟方法,可以到詳細資料頁的第一列按右鍵[選取欄位],選擇[認可大小]

工作管理員設定
工作管理員設定
選擇認可大小
選擇認可大小

C#範例

如果要透過C#讀取這些資訊可以使用下面方法,再搭配Timer每n秒鐘讀取一次。

讀取CPU使用率

PerformanceCounter cpu = 
new PerformanceCounter("Processor", "% Processor Time", "_Total");

//loop below
var c = $"{cpu.NextValue():n2}%"; //12.34%

讀取記憶體使用量

//loop below
//MB: 1024^2 = 1048576
var p = Process.GetCurrentProcess();
var memoryUsage = p.PagedMemorySize64 / 1048576;
var m = $"{memoryUsage:n2} MB"; //12.34 MB

以上方法為工作過程記錄,如有錯誤請不吝指教。

參考資料

「cian」的個人頭像