我想计算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
是有用的链接。