我正在使用 ANTS 内存分析器来诊断我在我的一个 .NET 2.0 应用程序中面临的内存泄漏增加。我在 7.5 小时内拍摄了该过程的 7 个快照,这是所获得数据的表格表示 -
G1 代表第 1 代大小和 G2 第 2 代大小。除非托管空间和私有字节外,所有其他值均以 MB 为单位。
我的问题是——
为什么即使堆大小很小,未使用的 .NET 空间也会如此之高?
我的大型对象堆最多达到 2 MB,在最后 3 个快照期间保持在 96 KB。那为什么会有这么高的大碎片,它们是造成高未使用空间的原因吗?
非托管空间不断增加。这是否会导致私有字节随着时间的推移而增加?
我无能为力解决这个问题,并进行了多次分析,但找不到合适的解决方案。我准备提供所需的任何其他数据。