为什么要进行多处理池处理大量项目的速度较慢

时间:2019-03-06 14:39:02

标签: image multiprocessing pool

我正在使用multiprocessing.Pool和apply_async()一起处理大量图像(大约1000张)。

我已将池设置为使用4个进程。

我的问题是处理图像的速率如何根据要处理的项目数而变化。

例如,当池中装有10个项目时,这些项目将在0.5秒内处理。

在1000个项目上运行相同的代码时,将在10秒内处理前10个项目。

这是为什么?我希望完成整个工作的时间会增加,但是不会增加图像处理的速度。

代码如下:

imagelist = [...] # array of images(pixel data)
pool = Pool(processes=4)
for i, image in enumerate(imagelist):
    a = pool.apply_async(process, args=(image), callback=postprocess)

我希望无论处理多少项目,图像的处理速度都是恒定的。为什么不呢?

0 个答案:

没有答案