1

我开发了一个复杂的程序,其中线程池执行许多对象计划的任务。我有内存泄漏。

到目前为止,我已经使用 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.
...

最后创建的对象是什么?是否有一些内省代码可以提供帮助?

谢谢!

4

0 回答 0