[英]python 3.6 multiprocessing.Pool() very slow to start using Windows
在Windows 10,AMD Threadripper 16核心CPU,64 GB RAM,快速SSD上运行Python 3.6.4(64位)。 在开始此测试之前,没有其他东西在运行(<2%CPU)或使用RAM(55GB可用空间)。 除了调用mp.Pool()设置工作进程外,其他所有程序都运行很快。 设置完成后,运行pool.map()的速度将达到预期的速度。 注意:在本地运行并通过虚拟环境进行测试。
任何修复,解决方法,想法或解释将不胜感激。 谢谢。
import multiprocessing as mp
import time
for x in range(2,15):
t0 = time.perf_counter()
with mp.Pool(processes=x) as pool:
pass
print('Done {0} processes in {1:.2f}s'.format(x, time.perf_counter() - t0))
Done 2 processes in 0.79s
Done 3 processes in 1.34s
Done 4 processes in 2.18s
...
Done 12 processes in 6.44s
Done 13 processes in 5.45s
Done 14 processes in 5.73s
几个小时后,我确定是导致问题的原因是Bitdefender设置。 在防病毒下,有一个名为“仅扫描新文件和更改的文件”的设置。 如果设置为“关”,则会发生性能问题。 开启它,计时降为每5个进程0.11s。 出于文档目的,我正在运行Bitdefender AV Plus 2018(到目前为止是最新的)。 我将此问题报告给Bitdefender,并将其升级为下一个支持层。
感谢大家的投入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.