我的應用程序有10個鋸齒陣列和5個列表。平均值填充不同的數據,例如double或string類型。所以我知道我的應用程序必須消耗大量內存,但是如何確定正在使用的內存總量?如何確定我的應用程序使用的退役內存?
我已閱讀使用GC.GetTotalMemory
,所以我做的第一件事是這樣的:
var initialMemory = System.GC.GetTotalMemory(true);
many line of code
...
..
var finalMemory = System.GC.GetTotalMemory(true);
var consumption = finalMemory - initialMemory;
所有的代碼是main()
稱他的功能的功能裏面,但最終的結果是零。我看到finalMemory
也是零,那麼首先是怎麼回事?初始記憶有一個數字,但最後沒有。
是System.GC.GetTotalMemory
是找出我的應用程序使用的內存總數的最佳選擇嗎?
GC只知道託管內存,它只是應用程序使用的內存的一部分。 –
您可以使用WMI通過WMI進行搜索以獲得Total Memory – MethodMan
對於性能分析,我強烈建議使用Red Gates內存分析器:http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/ – dmck