【发布时间】:2012-10-09 07:53:20
【问题描述】:
我一直在尝试使用 objgraph 调试 Coopr 包中的内存泄漏:https://gist.github.com/3855150
我已将它固定到 _SetContainer 对象,但似乎无法弄清楚为什么该对象会持续存在于内存中。这是objgraph.show_refs 的结果:
如何查找循环引用以及如何让垃圾收集器收集 _SetContainer 实例?
我之前认为类本身可能有一个自引用(上图右侧类正下方的元组)。但是 objgraph 总是将继承的类显示为具有自引用元组。可以看到一个很简单的测试用例here。
【问题讨论】:
-
[
, {'and': and at 0x7928f0>, ..., 'union': }, ( , , , , ), ( ,), ] -
使用
pprint(gc.get_referents(obj.__class__))。自引用元组在那里,但没有给出它的属性名称。
标签: python memory-leaks objgraph