最近,我遇到了似乎是内存泄漏的问题,我无法找到它的来源。 我使用Python 3.4和Firebase library以及"请求2.7.0"
这是我的代码流程:
我的程序运行while true
循环。
我有一个对象Foo
,每次迭代(foo = Foo()
)都会重新声明。
初始化Foo时,它会打开对firebase(fb. get_async()
)的多个异步调用。
当调用返回时,它将结果保存到Foo
的自身字段中。
它所呼唤的火山树很重。
我确保在每次迭代后foo都被删除,我甚至调用gc.collect()。
但是,似乎每次迭代后进程的内存都在增长,直到计算机卡住或进程崩溃。
我使用tracemalloc查看大对象的创建位置,我得到了这个输出:
此外,我使用gc.get_objects()来查看该对象是什么,令人惊讶的是我发现它是一个包含此形式的(数字,字符串)元组的巨大列表: 0000000 = {tuple}(208,((' C:\ Python34 \ lib \ copy.py',246),)) 0000001 = {tuple}(208,((' C:\ Python34 \ lib \ multiprocessing \ connection.py',251),)) 等。
我想知道你是否对这个问题有任何了解或解决这个问题。 谢谢 盖