【问题标题】:Determine how much memory a class uses?确定一个类使用多少内存?
【发布时间】:2010-09-08 06:27:42
【问题描述】:

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

【问题讨论】:

    标签: .net memory


    【解决方案1】:

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

    这里有几个值得尝试的:

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-29
          • 1970-01-01
          • 2017-02-06
          • 1970-01-01
          • 1970-01-01
          • 2016-07-07
          相关资源
          最近更新 更多