Python 多处理和内存问题

Python 多处理和内存问题,python,python-2.7,Python,Python 2.7,所以我有一个脚本,可以读取一个700000行左右的文件。对于每一行,它返回一个从该行计算的值列表。在我尝试使用多处理之前,我使用了for循环,并将每行的值递增为一个全局变量(因为最终我是在求和之后)。不幸的是,对于多处理模块,我不能只向全局变量添加一些内容,因为它们是独立的进程。相反,我让每个进程返回我所要的值,并使用Pool.map创建一个巨大的返回值列表。然后,我可以循环浏览这个列表,得到我想要的总数。这是非常内存密集型的。有什么建议吗?我意识到这可能很难理解,因此,如果需要,我可以澄清。谢

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

在每个过程中保留一个累加器,然后在最后将所有累加器相加。每个进程只需存储一个值。

是,请澄清。听起来你可以计算每个过程中的值之和,然后在最后计算一个总数。但是,再一次,我对具体问题的了解还不够确切。你想要的或多或少是一个简单的“否”的应用,我返回的东西之一是一个列表,因此我想对每个过程列表的第I个元素求和。考虑到我们两个还不能完全理解你想要什么,我认为在你的问题中添加一些代码将有助于提高获得有用答案的机会。我从每个过程中获取多个值,然后将不同过程的值相加。那么,如果我需要来自每个进程的多个变量,我如何只需要从每个进程返回一个值呢?