8

我试图找到一种方法来确定在运行时给定类在 .NET 中使用了多少内存。使用Marshal.SizeOf()已淘汰,因为它仅适用于值类型。有没有办法准确检查一个类使用了多少内存?

4

3 回答 3

5

我最近才开始研究这种类型的东西,但我发现内存分析器可以提供有关应用程序中对象实例的非常详细的信息。

以下是值得尝试的一对:

于 2008-09-09T10:34:01.040 回答
1

我同意内存分析器是获取所需信息的最简单方法。除了前面提到的两个,我推荐 JetBrains dotTrace,它既是性能分析器,也是内存分析器。

如果您想自己做,并且愿意深入了解 CLR,您可以使用.NET Profiling API,这是一个非托管 API(如 Microsoft 所说):“使分析器能够监视程序由公共语言运行时 (CLR) 执行。” 它不完全是为休闲使用而设计的,但它确实具有大量的功能。

于 2008-09-09T13:34:12.197 回答
1

只需链接到相关的 SO 问题:

于 2008-09-09T14:55:32.360 回答