【发布时间】:2020-02-18 20:41:12
【问题描述】:
我需要将一个大型数据集(大约 25GB 的图像)读入内存并从多个进程中读取。没有一个进程必须写入,只需读取。所有进程都使用 Python 的多处理模块启动,因此它们具有相同的父进程。他们在数据上训练不同的模型并相互独立运行。我之所以只想读一次而不是在每个进程中读取它的原因是机器上的内存是有限的。
我曾尝试使用 Redis,但不幸的是,当许多进程从中读取时它非常慢。还有其他选择吗?
是否有可能以某种方式让另一个进程仅用作“获取 ID x 的图像”功能?什么 Python 模块适合这个?否则,我正在考虑使用 werkzeug 或 Flask 实现一个小型网络服务器,但我不确定这是否会成为我的新瓶颈......
我想到的另一种可能性是使用线程而不是进程,但由于 Python 并没有真正做“真正的”多线程,这可能会成为我的新瓶颈。
【问题讨论】: