在笔记本电脑上,英特尔的“Turbo-Boost”技术可能会导致 CPU 温度过高,伴随而来的是风扇噪音,根据型号的不同,在使用最大时钟频率时,甚至会出现可听见的非恒定线圈噪音。网页浏览尤其容易导致时钟频率频繁飙升,广告拦截器可以缓解但不能消除症状。网页浏览尤其会导致 CPU 温度飙升,尽管它实际上并不需要那么多性能。
在 Windows 的高级电源计划设置中将最大 CPU 速度设置为 99% 可以有效禁用 Turboboost 以避免此问题。
遗憾的是,这是一个难以解决的难题。降低排放量对于持续运行的程序(Webbrowser、Office 等)很重要,但对某些短期任务(编译、数据分析等)的处理速度产生重大影响是不可取的,因为作为用户,我可以控制这些任务的运行时间和运行时间,而且在运行过程中通常会产生等待时间。
是否有可能找到一个中间立场,即默认情况下禁止程序使用 TurboBoost,但可以有选择地允许可执行文件访问完整的 CPU 性能?
答案1
有选择地启用 Turboboost 可能是不可能的,正如我在问题中问到的那样。但是,作为“下一个最佳选择”,使用在执行短暂命令之前和之后更改电源计划的包装器就足够了。我已将其发布为https://github.com/kbauer/with-high-performance
编写脚本时,其形式如下:
:: -- with-high-performance.cmd
@echo off
if "%~1"=="" (
echo.
echo Usage: %0 COMMAND ...
echo.
echo Execute COMMAND with HighPerformance powerplan.
echo Once COMMAND is finished, switch back to Balanced.
echo.
echo For the time being, doesn't support detecting if another
echo process is being executed in this panner.
echo.
echo If you need other power plans than the "balanced"
echo and "high performance" plans, change the UIDs in the
echo script to a value as obtained by running
echo.
echo ^ ^ ^ ^ POWERCFG /LIST
echo.
exit /b 1
)
setlocal
set high=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
set balanced=381b4222-f694-41f0-9685-ff5bb260df2e
echo %0^> %* >&2
call powercfg.exe -setactive %high%
call %*
set command_errorlevel=%errorlevel%
call powercfg.exe -setactive %balanced%
endlocal
exit /b %command_errorlevel%
但请注意,虽然脚本确实正确切换了电源计划,但到目前为止,我还没有看到使用 pdflatex/latexmk 时有任何加速。