多处理消耗内存

我正在玩Pyprocessing模块,发现它吃了很多东西
记忆。我做了小测试用例以展示它。我将〜45MB的数据传递给
工作过程,而不是将其稍作修改。随时
在主要过程中,不应不超过两个数据副本
(一个原始数据和一个结果)。我在8核服务器和顶部运行
向我展示主要过程吃了〜220 MB,而工作过程吃90
-150 MB。不是太多吗?
小型测试案例已上传到Pastebin:http://pastebin.ca/1210523(_@_ _)
在9月25日,8:40*AM," Max Ivanov" 从外观上看,您正在存储大量对各种的参考
通过异步集的数据副本。

# 回答1


在26óÅîô,04:20,istvan albert 从外观上看,您正在存储大量对各种的参考
通过异步集的数据副本。
我怎么能避免存储它们?我需要一些东西来检查
准备就绪是否准备就绪,如果准备就绪。我看不到通往的路
在不存储异步设置的情况下达到相同的结果。
# 回答2


在9月26日,9:52*AM,Redbaron 我怎么能避免存储它们?我需要一些东西来检查
准备就绪是否准备就绪,如果准备就绪。我看不到通往的路
在不存储异步设置的情况下达到相同的结果。
您可以给每个工作过程一个ID,然后让它们放置ID
在完成后进入队列以向主过程发出信号。
顺便说一句,您的测试案例会在迭代时修改异步设置,
这是一个坏主意。
# 回答3


在26 ñðµð½ñ,17:03,mrab 您可以给每个工作过程一个ID,然后让它们放置ID
在完成后进入队列以向主过程发出信号。
如果没有异步,我如何从工作过程中检索结果?
我的错,最初有列表(异步)。
# 回答4


在9月26日,4:52*AM,Redbaron 这完全取决于您要做什么。你的问题
最初提出的是记忆消耗。
在并行处理数据时,您将使用尽可能多的内存
您在任何给定时间处理的许多数据集。如果你需要
减少内存使用,然后您需要启动更少的过程并使用一些
在自由的情况下向它们分发工作的机制。 (看
建议使用队列)
# 回答5


在并行处理数据时,您将消耗尽可能多的emmemoryas
工作过程的吃量是我传递的2-4倍。
我不明白在这里如何使用队列?如果工作过程
完成计算,它将其'ID放入队列中,在主过程i
检索该ID,以及我如何从工作过程中检索结果
然后?

标签: python

添加新评论