我需要检查堆中分配了多少内存.有没有办法用C#以编程方式获取此值?
我知道System.Runtime.InteropServices.Marshal.SizeOf(...)
但只能告诉我一个物体的大小.
使用的PerformanceCounter您可以查询"字节数在所有堆",从自己的过程,甚至是其他进程.
使用类别".Net CLR Memory"可以查看许多可用的计数器.
您必须了解PerformanceSounter与Jon Skeet提出的GC.GetTotalMemory之间的系统负载有何不同.