前几天,Vivaldi 开发者和安全专家Yngve Pettersen在博客介绍了一个由Windows 10 安全功能引起的bug,该 bug 会严重影响基于Chromium 的浏览器的性能问题。Yngve 在博客中表示,开发者将 Windows 10 添加到 Windows 单元测试集群时发现了这个性能问题 —— 此前是基于 Windows 7 Pro 进行相关性能测试。
“我们立刻发现了性能问题。以前需要大约 100 分钟运行完成的测试套件现在需要 300 或甚至 360 分钟。我们尝试通过调整操作系统配置、更换驱动程序以及调整虚拟机的配置来解决问题,但都没有任何帮助,最后只有切换回旧的Windows7 Pro 实例。”
不过 Yngve 没有就此打住,他继续挖掘希望发现导致问题的真正原因。于是他拿出自己的家用电脑(Yngve 本人说是第一台将代码编译成 Vivaldi 浏览器的机器),然后为其装上新的SSD并进行相关测试。
但测试结果的变化不大,使用 Windows 7几乎是唯一能够提高测试性能的方法。Yngve 表示:“在 Windows 10 上进行测试需要 100 分钟,在 Windows 7 上只花了 20 分钟。”
接着 Yngve 联系上了 Chromium 的开发者,以了解他们是否遇到类似的问题。不过 Chromium 开发者的测试结果显示 Windows 10 和 Windows 7 虽然有差异,但差异不大,最后他们建议Yngve提交一份错误报告。
经过更多的测试,包括更详细地记录测试运行所花费的时间,Yngve 最终把问题定位到了CreateProcess 上。与此同时,Chromium 团队的Bruce Dawson 也开始研究这个问题,不过他很快发现该问题由一个名为 Control Flow Guard (CFG) 的 Windows 安全功能引起,Control Flow Guard 即是控制流保护。
CFG 功能用于防止内存泄露,对于软件可执行代码的来源进行了一定程度的限制。Bruce Dawson 表示,该功能对于保护浏览器等应用程序非常有用,但对于测试可执行文件并不是必需的。因此关闭该功能就能解决 Chromium 类浏览器在Windows 10 上的性能问题。
随后 Bruce Dawson 便向微软报告了这个漏洞,微软承认了这个 bug,并已于上周解决了该问题,预计将在5月14日补丁星期二为所有用户发布一个完整补丁。
不过,普通用户不太可能因为这个错误而遇到任何性能问题,因为它目前只在特定的测试环境中出现。
相关文章
网友评论(共有 0 条评论)