2013-04-05 42 views
0

我正在一個有內存泄漏的項目(構建於MVP體系結構上)工作。該應用程序使用1GB的內存,並在網格中顯示記錄列表。打開/關閉窗體時出現大型MVP應用程序內存泄漏

我異形它(接過2存儲器快照)在這兩個時刻: 1.在打開一個網頁,從DB加載數據(存儲器使用= 400 MB)之前 2.關閉頁面

時當關閉頁面時,內存使用保持不變(大約1 GB),至少應該放下某些東西(理想情況下它應該回到400 MB,但GC不能始終控制......可以嗎?)。我嘗試像這樣控制進程的內存使用情況:

Process.GetCurrentProcess()。MaxWorkingSet = new IntPtr(1000000);

,我打算使用另一件事:

SetProcessWorkingSetSize(IntPtr handle, IntPtr min, IntPtr max)

,但我還嘗試優化代碼,不知道怎麼辦。我將盡快編輯這篇文章,其中包含很多代碼,請勿-1 ...它

+0

對不起,這是一個Web應用程序? – oleksii 2013-04-05 17:20:53

+0

您的程序是否使用任何本機C/C++組件? – Siraf 2013-04-05 17:27:17

+0

我建議你將內存大小留給OS和.NET FW。從來沒有需要手動設置它。即使你手動改變它,你也會覆蓋這個問題。它會在你的應用程序的其他地方再次蠕動。嘗試找出正在使用內存的內容。也許使用RedGate或JetBrains的內存分析器。他們可以顯示什麼對象正在使用內存。 – 2013-04-05 19:42:39

回答