Memory CLR GC堆如何映射到本机堆?

Memory CLR GC堆如何映射到本机堆?,memory,garbage-collection,clr,heap,windbg,Memory,Garbage Collection,Clr,Heap,Windbg,例如,如果我看到其中一些堆相当大,我的下一个问题是谁(本机代码或托管代码)使用它们。 如何确定CLR使用的本机堆(!heap-s)是什么 CLR不使用任何本机堆。 使用SOS和!DumpHeap以查看托管堆 这里是用来查找谁在使用本机堆的 我在查找谁在使用哪个本机堆方面取得了一些很好的结果 编辑: 虽然VirtualAlloc用于为本机堆分配内存,但是!CLRAusage显示还使用了本机堆。但是我不知道目的 0:000> !CLRUsage Native Heap for mscorwks

例如,如果我看到其中一些堆相当大,我的下一个问题是谁(本机代码或托管代码)使用它们。
如何确定CLR使用的本机堆(!heap-s)是什么

CLR不使用任何本机堆。 使用SOS和!DumpHeap以查看托管堆

这里是用来查找谁在使用本机堆的

我在查找谁在使用哪个本机堆方面取得了一些很好的结果

编辑: 虽然VirtualAlloc用于为本机堆分配内存,但是!CLRAusage显示还使用了本机堆。但是我不知道目的

0:000> !CLRUsage
Native Heap for mscorwks: 0x07e60000
Number of GC Heaps: 1
------------------------------
GC Heap Size  0xbc7dd4(12,352,980)
Total Commit Size  00e22000 (14 MB)
Total Reserved Size  0225e000 (34 MB)
Initial reservation type: All at once
Initial Allocation Size: 2000000 (33,554,432) (32 MB)
Reserved Memory Size: 3000000 (50,331,648) (48 MB)
Reserved Memory Limit Size: 3000000 (50,331,648) (48 MB)

CLR使用VirtualAlloc分配要用作托管堆的内存段。您可以使用!sos.eeheap-gc!stat将显示托管堆使用了多少内存,以及哪些类型的对象正在消耗内存