Python多处理共享内存:列表列表

时间:2013-12-05 00:59:17

标签: python multiprocessing shared-memory

是否可以使用multiprocessing.Array()或类似内容共享列表内存?此外,是否可以共享更复杂的对象,例如scipy.sparse.lil_matrix?我该怎么做呢?是否有任何例子?这个变量不需要修改,但是它消耗了大量内存(每个进程大约1GB),我希望共享内存会减少内存使用量。或者这是不正确的?

1 个答案:

答案 0 :(得分:1)

通常,没有(并且Python在写入时复制多处理方面尤其糟糕,因为即使读取对象也意味着更改其引用计数,这就是写操作)。

但是,您可以尝试使用内存映射文件。将您的数据集转储为一个,从多个流程中打开它,并获得操作系统I / O缓存的好处。

您在使用数据集做什么?