在python中生成进程是处理内存泄漏的好方法吗?

2024-09-28 20:57:17 发布

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

我有一个python方法,它在执行时会导致内存泄漏,泄漏本身起源于一个带有python绑定的C库,我无法控制它:

for i in range(10):
    do_some_c_stuff() # Memory leaks at every invocation, not freed by garbage collector

我发现,如果生成一个进程,然后终止它,内存就会被释放:

for i in range(10):
    p = multiprocessing.Process(target=do_some_c_stuff)
    p.start()
    p.join()
    p.terminate() # Memory is freed up here, (by the OS?)

我的问题是-这是一个好的方式来处理这个问题,还是有什么更好的我可以做的?你知道吗


Tags: 方法内存inforbyrangesomedo
1条回答
网友
1楼 · 发布于 2024-09-28 20:57:17

My question is - is this an OK way to deal with this problem

我不这么认为。生成一个进程是一个代价高昂的操作,每次需要调用该函数时都要这样做,代价可能会非常高昂。你知道吗

or is there something better I can do?

是:联系软件的作者,并要求修复:)

如果这不可能,我会开始寻找一个替代品。但使用软件,知道它泄漏,应该避免在任何时候。你知道吗

相关问题 更多 >