我有一个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?)
我的问题是 - 这是处理这个问题的好方法还是我能做些什么?
答案 0 :(得分:0)
我的问题是 - 这是处理这个问题的好方法吗
我不这么认为。产生一个过程是一项代价高昂的操作,每次你需要调用该函数时这样做会变得非常昂贵。
或者我能做些什么更好的事情?
是:联系软件作者,并要求修复它:)
如果那不可能,我会开始寻找替代方案。但是应该始终避免使用软件,知道泄漏。