4

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

我知道,System.Runtime.InteropServices.Marshal.SizeOf(...)但这只能告诉我一个对象的大小。

4

2 回答 2

5

使用PerformanceCounter,您可以从您自己的进程甚至其他进程中查询“# Bytes in all Heaps”。

使用“.Net CLR 内存”类别查看大量可用的计数器。

您必须查看由 Jon Skeet 提出的 PerformanceCounter 和 GC.GetTotalMemory 之间的系统负载差异。

于 2009-03-09T09:07:11.783 回答
4

GC.GetTotalMemory你需要的一切吗?

(请注意,这也SizeOf只会告诉您编组后的大小 - 不一定是内存中的大小。)

于 2009-03-09T08:56:23.620 回答