寫影像處理程式時,可能會一次性處理大量的影像資料,或是用相機做即時視覺檢測,要在完成任務後需要手動將資源釋放,才得以應付大量的影像吞吐量,因此特別需要注意系統資源運用問題,好比CPU使用率、記憶體的佔用量…等。
在開發過程中VisualStudio提供方便的診斷工具,可以即時的檢視目前資源的使用量,藉此觀察是否CPU、記憶體過載。
另外,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
以上方法為工作過程記錄,如有錯誤請不吝指教。