0

我正在从事一个存在内存泄漏的项目(基于 MVP 架构构建)。该应用程序正在使用 1GB 的内存,并在网格中显示记录列表。

我在这两个时刻对其进行了分析(拍摄了 2 个内存快照):1. 在打开从数据库加载数据的页面之前(内存使用量 = 400 MB)2. 关闭页面时

关闭页面时,内存使用量保持不变(大约 1 GB),当它至少应该下降时(理想情况下它应该回到 400 MB,但不能总是控制 GC ......可以吗?)。我试图像这样控制进程的内存使用:

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

我打算使用另一件事:

SetProcessWorkingSetSize(IntPtr handle, IntPtr min, IntPtr max)

但我进一步尝试优化代码并且不知道如何。我很快会用大量代码编辑这篇文章,不要-1 ...

4

1 回答 1

1

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

于 2013-04-05T17:56:45.957 回答