共享列表(manager-list)非常耗时



我有一个流动的方案:

一个数据处理过程-The_process很少的数据生成过程-工人

我需要做的是共享列表foo_list,其中包含另外两个大对象list1、dict2和

foo_list = [list1, dict2]

在这些过程之间。工作人员应该只读取foo_list,但我需要他们具有一致的对应list1和dict2。进程应该能够修改这些数据。

编辑:我需要工人更新foo_list的版本。process偶尔会更新foo_list,我需要工作人员尽快开始使用更新后的版本。

我使用过多处理库中的manager.list,但评测显示,它大约占用了程序时间的25%,只是由worker从列表中获取数据。

所以问题是,还有其他方法可以做到吗?还是我做错了?

在大多数情况下,共享内存是不可行的。您最好(如果您有足够的内存)复制此列表,并将foo_list的副本传递给每个进程,这样就不会浪费时间在进程之间管理列表。

当我尝试使用共享内存->Python多处理性能

时,我自己也遇到了类似的问题

最新更新