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

时间:2020-03-05 18:49:56  来源:igfitidea点击:

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

解决方案

回答

我只是最近才开始研究这类事情,但是我发现内存分析器可以提供有关应用程序中对象实例的相当详细的信息。

这是一对值得尝试的夫妇:

  • 蚂蚁探查器
  • .NET内存探查器

回答

我同意内存分析器是获取所需信息的最简单方法。除了前面提到的两个之外,我还建议同时使用JetBrains dotTrace,它既是性能分析器又是内存分析器。

如果我们想自己做,并且愿意深入了解CLR的精髓,可以使用.NET Profiling API,它是一个非托管API(如Microsoft所说):公用语言运行时(CLR)执行程序。"它并非完全适合休闲使用,但确实具有大量功能。

回答

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

  • sizeof()是否等效于引用类型?