Windows 10誤傷友軍拖累Chromium內核瀏覽器微軟承認是bug
前幾天,Vivaldi開發者和安全專家Yngve Pettersen 在博客介紹了一個由Windows 10安全功能引起的bug,該bug會嚴重影響基於Chromium的瀏覽器的性能問題。Yngve在博客中表示,開發者將Windows 10添加到Windows單元測試集群時發現了這個性能問題——此前是基於Windows 7 Pro進行相關性能測試。
“我們立刻發現了性能問題。以前需要大約100分鐘運行完成的測試套件現在需要300或甚至360分鐘。我們嘗試通過調整操作系統配置、更換驅動程序以及調整虛擬機的配置來解決問題,但都沒有任何幫助,最後只有切換回舊的Windows 7 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日補丁星期二為所有用戶發布一個完整補丁。
不過,普通用戶不太可能因為這個錯誤而遇到任何性能問題,因為它目前只在特定的測試環境中出現。