非焦点窗口下Python代码运行速度减半问题分析与解决
非焦点窗口下Python任务(含YOLOv8训练)运行速度骤降的问题解决
问题现象
- YOLOv8训练时,终端窗口处于焦点状态时,每个epoch耗时约7秒;切换到浏览器窗口后,epoch耗时增至约15秒
- 屏幕分屏显示浏览器与终端时,切换焦点不会影响任务执行速度
复现测试
用斐波那契数计算任务复现了相同的速度骤降现象,测试代码如下:
import time from tqdm import tqdm def fibonacci(n): if n in (1, 2): return 1 return fibonacci(n - 1) + fibonacci(n - 2) for i in tqdm(range(100)): t1 = time.time() fibonacci(37) print(f'Time: {time.time() - t1}')
无效排查操作
已尝试以下操作,均未解决问题:
- 提升Python/终端/VS Code进程优先级
- 更换运行环境(终端、Jupyter、VS Code)
- 重启Windows系统
硬件与软件环境
- Windows 11
- Python 3.10.11
- RTX 3090Ti
- Intel i5-13400F(12代及以上混合架构处理器)
- 32GB DDR4
- 1TB 三星980
原因分析
Intel 12代及以上处理器采用性能核(P核)+能效核(E核)的混合架构,Windows 11的Thread Director技术默认仅为焦点窗口对应的进程分配性能核,非焦点进程会被调度到能效核运行,导致计算速度大幅下降。
解决方法
以管理员身份运行VS Code或对应的Python/终端进程,让进程能不受焦点限制,持续使用性能核资源。
内容的提问来源于stack exchange,提问作者Mikhail Kozlov
相关产品推荐
相关产品推荐

