打开/关闭表单时大型MVP应用程序内存泄漏

时间:2013-04-05 17:07:19

标签: c# mvp

我正在一个有内存泄漏的项目(在MVP架构上构建)工作。该应用程序使用1GB内存和显示在网格中的记录列表。

我在这两个时刻分析了它(拍摄了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 ......它

1 个答案:

答案 0 :(得分:1)

检查您的对象是否在大对象堆(LOH)中创建。 检查您的活动订阅。 参考http://msdn.microsoft.com/en-us/magazine/cc534993.aspx

相关问题