我正在一个有内存泄漏的项目(在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 ......它
答案 0 :(得分:1)
检查您的对象是否在大对象堆(LOH)中创建。 检查您的活动订阅。 参考http://msdn.microsoft.com/en-us/magazine/cc534993.aspx