如何在给定的.NET应用程序中查看内存分配?

Spo*_*ike 4 .net c# memory-management heap-memory

我需要检查堆中分配了多少内存.有没有办法用C#以编程方式获取此值?

我知道System.Runtime.InteropServices.Marshal.SizeOf(...)但只能告诉我一个物体的大小.

GvS*_*GvS 5

使用的PerformanceCounter您可以查询"字节数在所有堆",从自己的过程,甚至是其他进程.

使用类别".Net CLR Memory"可以查看许多可用的计数器.

您必须了解PerformanceSounter与Jon Skeet提出的GC.GetTotalMemory之间的系统负载有何不同.