是否可以使用multiprocessing.Array()
或类似内容共享列表内存?此外,是否可以共享更复杂的对象,例如scipy.sparse.lil_matrix
?我该怎么做呢?是否有任何例子?这个变量不需要修改,但是它消耗了大量内存(每个进程大约1GB),我希望共享内存会减少内存使用量。或者这是不正确的?
答案 0 :(得分:1)
通常,没有(并且Python在写入时复制多处理方面尤其糟糕,因为即使读取对象也意味着更改其引用计数,这就是写操作)。
但是,您可以尝试使用内存映射文件。将您的数据集转储为一个,从多个流程中打开它,并获得操作系统I / O缓存的好处。您在使用数据集做什么?