我目前正在调查内存泄漏,我无法真正解释它,现在正在寻找有用的链接或想法。
这是应用程序本机内存的屏幕截图(由.NET Memory Profiler制作):
该应用程序大约需要2.2 GB(正常)。当应用程序具有约3.5 GB的空间时,将进行转储。我目前无法解释第0代的这些差距。对我来说,这似乎是因为垃圾收集器无法缩小第0代中的差距。
为了提出一个明确的问题:
这些差距是如何发生的?对我来说,这似乎是因为GC已收集了死对象,但没有压缩堆。我知道我无法触发或强制GC压缩堆。
我在此站点上搜索了类似的问题,但其中大多数与LOH有关(对于我而言,这似乎很好)。唯一存在某种类似的巨大差距的问题是:什么是GC漏洞,但我看不到2 KB的代号为0的固定实例如何产生1 GB的漏洞。另一个问题是关于触发GC GC阈值的阈值。但是我不敢相信没有一个单一的压缩阶段。
墨色风雨
相关分类