Windows 11里藏着一个默认开启的开关,关掉它,某些场景下机器会快一点。但它不是普通的性能选项,而是一道安全防线——2018年曝出的Spectre漏洞留下的补丁。关还是不关,取决于这台机器拿来干什么,以及CPU有多老。后一件事,比过去重要得多。

打开网易新闻 查看精彩图片

Spectre不是某一个漏洞,而是一族针对推测执行的攻击手法。现代CPU几乎都用推测执行来提速:处理器会提前猜代码往哪走,猜错了就丢弃结果。问题在于,猜错的痕迹会留在缓存里。一段精心编写的程序,可以顺着这些痕迹推断出敏感数据。

其中被称作Spectre变体2(分支目标注入)的攻击,会训练CPU的分支预测器,把推测引向攻击者想要的位置,比如处理密钥的内核代码。Windows部署的缓解措施,限制的正是应用与内核边界上的这类推测——性能损耗也出在这里。

与其说它是“限速”,不如说是每次程序把任务交给操作系统时,多干了一点活。频繁跨越系统边界的工作负载,比如存储和代码编译,感受会更明显;完全跑在CPU核心上、不调用内核的任务,基本察觉不到影响。

微软在2018年推送这些缓解措施时,同步公布了自家测试:在搭载Skylake或更新英特尔处理器的Windows 10电脑上,降幅为个位数。而在Haswell及更老的平台上,部分基准测试的跌幅更大,用户能明显感觉到。微软还提到,Spectre变体1和Meltdown可以在不显著拖慢性能的情况下修补,真正昂贵的是变体2。

想关掉它,改注册表值FeatureSettingsOverride即可,网上也有一些免开注册表编辑器的免费工具。这里有个容易踩的坑:把该值改成流传最广的3,会连Meltdown防护一起关掉;改成1,才只关闭Spectre变体2的缓解。无论哪种,改的都只是操作系统这一侧的防御。

新CPU从收益上并不划算。较新的芯片直接在硅片层面修掉了一部分缺陷,剩下的缓解成本也更低;Windows自身在2019年转向了retpoline这类低开销技术。在一颗近期的锐龙或英特尔处理器上,关掉系统侧缓解,大概率测不出可感知的性能提升。

风险也不是纯理论。2021年,研究者Julien Voisin在VirusTotal上发现了可用的Windows和Linux Spectre漏洞利用程序,溯源指向Immunity公司的商业渗透测试平台Canvas。2024年,阿姆斯特丹自由大学的研究者演示了名为Native BHI的攻击,在已有防护的Linux英特尔系统上泄露了内核内存。微软也持续在为更新的变体发布指引。

这类利用有个前提:恶意代码得先存在,并且正在这台机器上运行。只打游戏、或者当客厅媒体盒用的设备,实际风险并不高。顺带一提,微软还指出内存完整性和虚拟机平台在特定场景下也会拖慢性能,关掉它们同样各有安全代价。

所以结论并不玄乎:在十年前的老处理器上,关闭Spectre缓解确实能把性能还给那些依赖内核、频繁跨组件通信的工作负载;在现代CPU上,这基本是拿防护换几个基准分。值不值,看你自己的系统和用途。