确定一个类使用多少内存?

时间:2008-09-09 10:28:48

标签: .net memory

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

3 个答案:

答案 0 :(得分:5)

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

以下是一对值得尝试的事情:

答案 1 :(得分:1)

我同意内存分析器是获取您正在寻找的信息的最简单方法。除了之前提到的两个,我还推荐JetBrains dotTrace,它既是性能分析器又是内存分析器。

如果你想自己做,并且愿意深入了解CLR的内容,你可以使用.NET Profiling API,这是一种非托管API(如微软所说):“启用用于监视程序通过公共语言运行库(CLR)执行的分析器。“它并不完全适合临时使用,但它确实具有大量的功能。

答案 2 :(得分:1)

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