铅泄漏Popen物体

2024-04-27 05:01:36 发布

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

我有一个类似守护进程的进程,它使用plumbum在子进程中运行命令。我注意到它泄漏了Popen个对象。你知道吗

易于复制:

from plumbum.cmd import ls
x = [ ls() for i in range(500) ]
del x
import gc
gc.collect()
import objgraph
[ x for x in objgraph.most_common_types(10000) if 'Popen' in str(x) ]
=> [('Popen', 500)]

这是虫子吗?(我找不到报告铅中毒的地方……)

我还“试验”了修改泄漏的Popen对象,试图打破引用循环(假设存在引用循环,从而导致泄漏),但没有任何帮助。你知道吗

在linux上运行,plumbum版本1.14.0。你知道吗


Tags: 对象infromobjgraphimport命令cmdfor