Python2.7当OrderedDict键是元组时如何修复内存泄漏

2024-09-27 00:13:41 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑到以下代码

from collections import OrderedDict
import gc
gc.set_debug(gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_SAVEALL)

def main():

    leaking = OrderedDict()
    leaking[('x', 'y')] = 4
    leaking[('z', 'w')] = 4
    return

main()
gc.collect()
print(gc.garbage)

我们可以看到内存正在泄漏, 使用objgraph这似乎是由于OrderedDict中的循环引用造成的,这似乎与python http://bugs.python.org/issue9825中的这个旧错误相一致(但它被标记为closed)

使用leaking.clear()似乎没有帮助

是已知的臭虫吗?我这边有没有办法解决这个问题(ordereddict由第三方图书馆归还)?在

我使用的是python2.7.10


Tags: 代码fromdebugimportreturnmaindefcollections

热门问题