我有一个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?)
我的问题是-这是一个好的方式来处理这个问题,还是有什么更好的我可以做的?你知道吗
我不这么认为。生成一个进程是一个代价高昂的操作,每次需要调用该函数时都要这样做,代价可能会非常高昂。你知道吗
是:联系软件的作者,并要求修复:)
如果这不可能,我会开始寻找一个替代品。但使用软件,知道它泄漏,应该避免在任何时候。你知道吗
相关问题 更多 >
编程相关推荐