普通的Windows电脑在打上微软修补Meltdown和Spectre漏洞的补丁后,到底性能会下降吗?
民间测试结论各异,其中还不乏耸人听闻的“标题党”,对此,微软终于官方发声。
微软Windows和设备执行副总裁TERRY MYERSON今天在微软官方博客撰文,希望外界可以更好地理解修复和性能之间的关系。
关于漏洞的说明,微软的整理是目前最为详细的——
其中第一种形式(Variant 1,简称V1)“Bounds Check Bypass(绕过边界检查/边界检查旁路)”和第二种形式“Branch Target Injection(分支目标注入)”属于Spectre(幽灵),而第三种“Rogue Data Cache Load(恶意的数据缓存载入)”则属于Meldown(熔断)。
其中,V1和V3均不需要处理器微代码更新(即BIOS更新),V2则需要。
对于V1,Windows的解决方式是二级制编译器更新和从JS端加固浏览器,对于V2,微软需要CPU指令集更新,对于V3,需要分离内核和用户层代码的页表。
性能影响
Myerson称,微软发现,修复V1/V3对性能的影响微乎其微,问题的关键在于V2对底层指令集做了修改,导致成为性能损失的主因,以下是微软的测试结论——
1、搭载Skylake/Kaby Lake或者更新的处理器平台的Windows 10系统,降幅在个位数,意味着,绝大多数用户都感受不到变化,因为即便慢,也是在毫秒之内。
2、搭载Haswell或者更早的处理器的Windows 10平台,影响已经有些显著了,可能部分用户已经可以觉察出来。
3、搭载Haswell或者更早的处理器的Windows 7/8.1平台,大部分用户会明显感受到性能削弱。
4、任何处理器的Windows Server平台,尤其是密集I/O环境下,在执行代码分离操作时性能降幅会异常明显。
微软称,Windows 7/8在架构时由于使用了过多的用户到内核过渡,导致影响更明显。
微软最后表示,会继续和合作伙伴一道致力于更优质的安全方案开发。
PS:结合AMD的声明,他们的CPU架构对Meldown也就是V3是完全免疫,但Spectre的第一种形式则需要配合操作系统更新实现。