多处理池的内存消耗

问题描述 投票:0回答:1

我试图并行运行导入模块中的多个函数,但由于某种原因,每次新函数开始处理时,使用的内存似乎都会增加。这意味着一段时间后我会收到内存错误,因为我用完了可用内存。就好像已完成的进程中使用的内存没有被释放。

这是代码:

import module1
import module2
import module3
import module4

import time
import sys
import types
from multiprocessing import pool


if __name__ == '__main__':
    functions = ['module1', 'module2', 'module3', 'module4']
    
    with Pool(processes=2) as pool:
        futures = [pool.apply_async(globals()[func].initiate, args=('monthly', )) for func in functions]
    
        for fut in futures:
            try:
                result = fut.get()
            except Exception as exc:
                print('A process generated an exception: %s' % exc)

导入的模块基本上导入csv文件,运行分析并输出到xlsx文件。我正在使用 python 3.8.10 并且我还可以访问并发.futures。

谢谢你

python multiprocessing pool
1个回答
0
投票

代码分析部分对CSV文件数据进行什么类型的计算?

您能否展示一下 module1、module2、module3、module4 执行什么类型的逻辑的代码片段或示例代码? 这将有助于更清楚地了解您目前的情况。

© www.soinside.com 2019 - 2024. All rights reserved.