高承诺内存但堆大小

时间:2013-02-01 09:14:59

标签: .net debugging memory memory-leaks windbg

据报道,我的一个应用程序正在使用5个内存,当我接受进程转储并在windbg中进行分析时,我可以看到已提交的总承诺大小为5 gigs,但随后是总托管堆尺寸只有1.6演出。

问题:当堆大小只有几个演出时,什么可能导致提交大小如此之大,我可以看到MEM_COMMIT大小几乎全部由PAGE_READWRITE部分使用,是否可能是内存碎片?

州规模 MEM_COMMIT 5.653 Gb MEM_RESERVE 2.597 Gb

GC堆大小:大小:0x67cefd88(1741618568)字节。

1 个答案:

答案 0 :(得分:2)

是的,未在托管堆中计算的提交大小可能来自非托管堆中的碎片。命令!heap -s 将在windbg中显示它们。 您也可以使用VMMap快速排除其他类型的内存分配数据。