Python多线程与imagehash模块不会导致更快的代码执行



我想计算3.2亿个图像比较,根据我的发现,这导致预期的执行时间为8天左右,如果可能的话,我希望减少这个时间。

我已经尝试使用多线程,但无济于事。模块'tqdm'引用的时间和我自己的基本计算与非多线程代码完成估计完全相同。

我想问是否有另一个模块我不知道,这将有助于帮助我手头的任务。我知道asyncio,但是它的实现是令人生畏的,而且我在过去尝试安装它的时候已经失败了很多次。在我再次浪费时间之前,有人能明确地为asyncio做担保吗?

我的代码从2个dirs中读取图像,并将所有文件名放入2个列表中,然后使用forloop和1个嵌套的forloop,我检查一个目录(18,037)中的所有图像与另一个目录(17,731)中的所有图像并将结果保存到一个带有args 'ab'的文本文件中。

p。我还尝试了4次复制文件,并通过4个控制台执行它,看看是否消耗了更多的cpu,从而更快的执行时间。唉,更多的cpu被消耗,但执行并没有更快。

Multiprocessing已经实现了目标,一种更快的代码执行方式和100%的cpu利用率。

https://www.geeksforgeeks.org/processpoolexecutor-class-in-python/

https://docs.python.org/3/library/multiprocessing.html

是有用的链接。

最新更新