代码之家  ›  专栏  ›  技术社区  ›  Thomas Weller

对象计数是2的一个系数

  •  1
  • Thomas Weller  · 技术社区  · 6 年前

    我有一个dotMemory分析会话,但找不到内存泄漏,因此我执行了以下操作:

    1. 连接WinDbg并打断进程
    2. 在dotMemory中拍摄快照
    3. 让这个过程继续下去( g )这样dotMemory就可以占领snapshop了

    这样,如果应用程序处于空闲状态,即什么也不做(好吧,它运行消息泵),我应该得到相同的结果。

    查看dotMemory快照中的对象,我可以看到88000个JProperty类型的对象:

    dotMemory Screenshot

    0:021> !dumpheap -stat -type JProperty
    Statistics:
                  MT    Count    TotalSize Class Name
    000007fe7d3a3c28    83930      3357200 Newtonsoft.Json.Linq.JPropertyKeyedCollection
    000007fe7d3a4ef0   177104      4250496 Newtonsoft.Json.Linq.JProperty+JPropertyList
    000007fe7d3a4b80   177104     18418816 Newtonsoft.Json.Linq.JProperty
    Total 438138 objects
    

    谁错了?或者说,将调试器与dotMemory一起使用是一个已知的问题?

    我正在Windows7上使用dotMemory 2018.1.4和windbg10.0.15063,调试一个x64程序,如果有任何问题的话。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Thomas Weller    6 年前

    看起来这是dotMemory 2018.1.4中的一个bug。由于某些原因,我没有得到自动更新。我现在已更新到版本2018.2.1,对象计数相同。

    我试着找出一个问题 their bug tracker ,但我没找到。