托管堆和GC堆之间有什么区别

时间:2013-04-24 09:11:31

标签: .net clr

有人可以向我解释托管堆和GC堆之间的区别吗?因为我注意到有时总托管堆大小< Process Explorer + VMMap中的(Gen 0 + Gen 1 + Gen 2 + LOH)。

在我看来,总托管堆应该等于GC堆(Gen0-2 + LOH),为什么在Process explorer的.NET Performance选项卡中,总GC堆大小大于VMMap中的托管堆大小? / p>

1 个答案:

答案 0 :(得分:1)

GC HEAP

GC Heap托管对象实例,Generations是垃圾收集器堆的逻辑视图

MANAGED HEAP

托管堆段是垃圾收集器的一块内存  代表托管代码从OS(通过调用VirtualAlloc)预留

LOADER HEAP

LoaderHeaps将进一步划分的类型系统保持在一起 1 GT;高频堆 2 - ;低频堆 3 GT;存根堆

您也可以使用SOS来验证这些堆

!eeheap -loader

!eeheap - GC

!GCRoot [-nostacks] [对象参考]