繁体   English   中英

python 3.6 multiprocessing.Pool()开始使用Windows的速度非常慢

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM