我开发了一个复杂的程序,其中线程池执行许多对象计划的任务。我有内存泄漏。
到目前为止,我已经使用 guppy 检测到创建的对象的数量正在稳步增长,但它们并没有被破坏。我怎么知道哪些对象没有被销毁/收集?
这是我的代码的摘录:
# Memory Profiling
from guppy import hpy
import gc
class ThreadPool:
...
# Every 1 sec run:
gc.collect() # yes, this is paranoid...
print str(self.h.heap()).split('\n')[0]
结果是:
Partition of a set of 110304 objects. Total size = 15475848 bytes.
Partition of a set of 110318 objects. Total size = 15479920 bytes.
Partition of a set of 110320 objects. Total size = 15480808 bytes.
Partition of a set of 110328 objects. Total size = 15481408 bytes.
...
最后创建的对象是什么?是否有一些内省代码可以提供帮助?
谢谢!