前几天,Vivaldi 开发者和安全专家 Yngve Pettersen
在博客介绍了一个由 Windows
10 安全功能引起的 bug,该 bug 会严重影响基于 Chromium
的浏览器的性能问题。

正如Vivaldi开发人员所揭示的那样,Windows
10中内置的安全功能使基于Chromium的浏览器在测试环境中的速度降低了三倍多。Yngve
Pettersen在博客文章中解释说,开发人员在将Windows
10测试人员添加到Windows单元测试集群时发现了这个性能问题。

IT之家5月2日消息外媒报道,Vivaldi在互联网浏览器方面做得不错,相比起谷歌Chrome,许多用户更喜欢它。Vivaldi浏览器同样基于Chromium,如Opera、Chrome和新的微软Edge。现在,与浏览器开发相关的团队最近发现Windows
7系统比Windows 10更好。

Yngve 在博客中表示,开发者将 Windows 10 添加到 Windows
单元测试集群时发现了这个性能问题 —— 此前是基于 Windows 7 Pro
进行相关性能测试。

图片 1

Vivaldi团队注意到浏览器测试在Windows 7上运行得更快,比Windows
10更快。Vivaldi然后联系Chromium团队寻求帮助,找出了可能是问题的根本原因。结果发现Windows
10中的Control Flow Guard引发了这个问题。

“我们立刻发现了性能问题。以前需要大约 100 分钟运行完成的测试套件现在需要
300 或甚至 360
分钟。我们尝试通过调整操作系统配置、更换驱动程序以及调整虚拟机的配置来解决问题,但都没有任何帮助,最后只有切换回旧的
Windows 7 Pro 实例。”

“我们立刻发现了性能问题。以前需要大约100分钟才能运行的测试套件现在需要300或甚至360分钟。我们尝试通过调整操作系统配置,替换驱动程序以及调整虚拟机的配置来解决问题。没有任何帮助。”

Control Flow Guard是微软在Windows
8.1中首次引入的一项非常重要的安全功能。它默认开启,有助于防止某些漏洞影响你的PC性能。一般用户是不会关掉的。

不过 Yngve
没有就此打住,他继续挖掘希望发现导致问题的真正原因。于是他拿出自己的家用电脑(Yngve
本人说是第一台将代码编译成 Vivaldi 浏览器的机器),然后为其装上新的 SSD
并进行相关测试。

在尝试了几种解决方法之后,例如安装新的SSD进行进一步的测试,但依然没有任何改善,回到Windows7几乎是唯一能够提高测试性能的方法。

除了Chromium团队,Vivaldi还向谷歌寻求帮助。谷歌也提出了类似的声明:Control
Flow Guard是罪魁祸首。当CFG关闭时,Chromium测试运行结果与Windows
7一样好。

但测试结果的变化不大,使用 Windows
7 几乎是唯一能够提高测试性能的方法。Yngve 表示:“在 Windows 10
上进行测试需要 100 分钟,在 Windows 7 上只花了 20 分钟。”

“在运行Windows 10时需要100分钟的测试,在Windows
7上只花了20分钟。”Vivaldi的开发人员表示。

最新消息,微软已经提出新的方案来解决这个问题。该公司确认修复程序将在几周内推送给用户。

接着 Yngve 联系上了 Chromium
的开发者,以了解他们是否遇到类似的问题。不过 Chromium
开发者的测试结果显示 Windows 10 和 Windows 7
虽然有差异,但差异不大,最后他们建议 Yngve

该问题最初被认为与CreateProcess调用有关,但在向Chromium团队发送错误报告后,发现它全部归结为Control
Flow Guard或CFG。

CFG
功能用于防止内存泄露,对于软件可执行代码的来源进行了一定程度的限制。Bruce
Dawson
表示,该功能对于保护浏览器等应用程序非常有用,但对于测试可执行文件并不是必需的。因此关闭该功能就能解决
Chromium 类浏览器在Windows 10 上的性能问题。

图片 2

随后 Bruce Dawson 便向微软报告了这个漏洞,微软承认了这个
bug,并已于上周解决了该问题,预计将在5月14日补丁星期二为所有用户发布一个完整补丁。

根据微软的说法,CFG是一项专门用于防止内存损坏漏洞的功能,“通过严格限制应用程序可以执行代码的位置”。Chromium开发人员Bruce
Dawson发现,关闭此功能可以解决Windows 10上的问题。

不过,普通用户不太可能因为这个错误而遇到任何性能问题,因为它目前只在特定的测试环境中出现。

然后向微软报告了这个漏洞,微软上周设法解决了这个漏洞,现在预计将在5月14日补丁星期二为所有用户发布一个完整补丁。

(文/开源中国)    

不过,最终用户不太可能因为这个错误而遇到任何性能问题,因为它目前只在特定的测试环境中出现。