2009-01-20 55 views

回答

29

兩個功能,你可能會發現有用的是:

GC.GetTotalMemory(); 
    Process.PagedMemorySize64(); 

我的經驗是,GC.GetTotalMemory()並不十分可靠。它經常報告的內存使用量比實際的內存使用量要小得多。我看到它報告說,當我的程序在16 GB的機器上內存不足時,我只用了8 GB。

我還沒有測試過Process.PagedMemorySize64,雖然它看起來很有前途。

+1

我認爲Process.PrivateMemorySize64()是使用有源內存的使用是正確的。 – maxfridbe 2009-02-24 21:11:12

2

你可以聽上性能計數器,這將給你很多數據(GC活動/物理內存使用/託管堆等)

如果你需要更進一步您可能要附加一個調試器對你自己來說,這真的是非常棘手,因爲你將不得不產生一個新的過程並與之通信,並且穿過你的記憶。

6
Process proc = Process.GetCurrentProcess(); 
Logger.Info(proc.PeakWorkingSet64/1024 + "kb"); 
0

也許

Windows::System::Diagnostics::ProcessDiagnosticInfo::GetForCurrentProcess(); 
相關問題