我在這裏找到了許多有關使用此方法檢索當前內存使用情況的參考資料,在我的情況中,這是一個在64位上運行的32位進程Windows 7的我的代碼是使用process.WorkingSet64測量內存使用情況的異常
System.Diagnostics.Process[] processes =
System.Diagnostics.Process.GetProcessesByName("ProcessName");
if (processes.Count() != 1)
{
throw exception here, only one instance allowed;
}
System.Diagnostics.Process process = processes[0];
memoryUsed = process.WorkingSet64/(1024f * 1024f);
我的應用程序動態分配和釋放堆內存,這點我可以用標準的Windows任務管理器確認。但是,每次我調用上面顯示的代碼時,使用的檢索內存總是高於先前的計數。此外,它不同意TaskManager。根據任務管理器,它大約爲249 MB,而編程方式爲280 MB。
我在做些傻事嗎?
非常感謝。任務管理器中的字段「Memory(私人工作集)」對應於Process.PrivateMemorySize64,而不是process.WorkingSet64。 – Paul 2013-05-07 08:27:28