多处理Python的内存问题:如何释放结束任务的进程的内存

时间:2016-09-02 06:00:41

标签: python parallel-processing multiprocessing

当我们使用多个池运行多处理时,我们如何在完成任务后退出进程并减少内存使用量?我已经包含了close()和join()。但是我看到这个过程在他们的工作之后仍然保留着记忆。我们如何放弃这段记忆?

例如,我的代码如下所示

from multiprocessing import Pool
import pandas as pd    

def sub_test(aux):
    return sum(aux.A)

在以下四个池中生成并保存多个aux。

副本
def test(aux):
    pool = Pool(processes=4)
    pool.map(sub_test, aux)
    pool.close()
    pool.join()

我希望该过程在关闭和加入后释放内存,但它们仍然存在。

#here is the main function
aux = pd.DataFrame()
aux['A'] = [1,1,1]

for x in range(10):
   test(aux)

是否有任何命令可以解决此问题?

问题解决了。

pool.close()和pool.join()正常工作。

0 个答案:

没有答案