我正在开发一个 python 程序,它批量读取大量图像(比如说 500 张图像)并将其存储在一个 numpy 数组中。
现在它是单线程的,IO 非常快,需要花费大量时间的部分是创建 numpy 数组并在其上做一些事情。
通过使用多处理模块,我可以在其他进程中读取和创建数组。但我有问题让主线程访问这些数据。
我试过了:
1:使用multiprocessing.queues:很慢,相信是pickle和unpickle浪费了很多时间。腌制和解封大型 numpy 数组需要相当长的时间。
2:使用Manager.list():比队列快,但是当尝试在主线程中访问它时,它仍然很慢。即使只是遍历列表并且什么都不做,每个项目也需要 2 秒。我不明白为什么要花这么多时间。
有什么建议么 ?谢谢。