【问题标题】:Generation 2 memory cleared as soon as I get a snapshot in .NET using dotMemory使用 dotMemory 在 .NET 中获得快照后,第 2 代内存立即被清除
【发布时间】:2020-01-13 23:10:07
【问题描述】:

我正在使用 JetBrains dotMemory 调试 .NET Web 应用程序中内存使用率高的问题。 Profiler 声称第 2 代的内存使用率非常高。但是,当我点击“获取快照”时,内存使用量立即被清除,我无法在快照中看到第 2 代的内容。

如何调试第 2 代内存?

【问题讨论】:

    标签: c# dotmemory


    【解决方案1】:

    要获取内存快照,dotMemory 会启动垃圾收集,这就是 Microsoft Profiling API 的工作方式。 Gen2 对象已被 GC 收集,这意味着它们上没有引用,它们只是等待 GC(2),而这发生的频率比 GC(0) 少。这意味着您没有高内存使用的问题。什么时候运行 GC 来释放内存是 CLR 的事情,如果没有,那么内存就足够了。

    如果您仍需要查看它们是什么对象,您可以使用Memory Traffic View 查看在两个快照之间的范围内分配和收集的对象。或Snapshots Comparison View 来查看一个快照中的哪些对象在获取另一个快照时死亡。

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多