多处理和内存问题

时间:2012-07-07 20:29:45

标签: python python-2.7

所以我有一个脚本可以读取700,000行左右的文件。对于每一行,它返回从该行计算的值列表。在我尝试使用多处理之前,我使用了for循环并将每行的值递增为全局变量(因为最后我得到了一个总和)。不幸的是,对于多处理模块,我不能仅仅向全局变量添加内容,因为它们是单独的进程。相反,我让每个进程返回我之后的值,并使用Pool.map创建一个巨大的返回值列表。然后,我可以遍历该列表并获得我追求的总和。这是非常耗费内存的。有什么建议?我意识到这可能很难读,因此,如果需要,我可以澄清一下。谢谢!

1 个答案:

答案 0 :(得分:0)

在每个过程中保留累加器,然后在最后添加所有这些累加器。您只需要为每个进程存储一个值。