When running browser tests on Windows 10, Vivaldi team noticed huge performance issue on Windows 10 when compared with Windows 7 and when reported this to Chromium team they found that Control Flow Guard, that’s on by default and protects applications like browsers, caused the issue.
New Control Flow Guard security feature introduced with Windows 8.1 and available in Windows 10 “was created to combat memory corruption vulnerabilities”. Vivaldi team member who used Windows 7 to run unit_tests found tests took more time on Windows 10 and brought this to Google attention.
After thorough testing and investigation, Bruce Dawson from Google figured out that Control Flow Guard is causing the issue (he says “CFG strikes again”) and they’ve disabled this from their tests and forwarded the issue to Microsoft to fix. Windows kernel Team manager acknowledged the issue and said they built a fix which will be shipped in a couple of weeks.
Thank you Bruce for noticing and analyzing this perf issue. We investigated the root cause and built a fix. It will flight in a couple weeks…
— Mehmet Iyigun (@mamyun) April 24, 2019
NO end users should not disable CFG, there is a difference between running thousands of executable and a few, but in Windows 7 there is no issue with running the same number of unit tests.
Bruce who written detailed a blog post on this issue says this may not affect Chrome as it has to do with a large number of .exe files ” There is no sign this affects Chrome itself because only large .exe files are affected”.
Vivaldi’s Yngve Pettersen who reported the issue suspects CFG may cause issues to Vivaldi and Chrome browsers as both these browsers start new processes for each tab, but feels that may not be noticeable.
“It could be the issue that affects normal browser usage too, since both Chrome and Vivaldi start new processes for each tab, but as much of actual code is located in DLLs shared among the processes, and Windows CFG is reused for DLLs, it might not be noticeable in normal use”
If you want you can disable Control Flow Guard in Windows 10
1. Click on Start
2. Search for defender, open Windows Security
3. Click on “App & browser Control”,
4. Under Exploit Protection, click on “Exploit Protection Settings”,
5. Click on Down arrow under “Control Flow Guard”
6. Choose “Off by default”, you need to restart your computer for the changes to take effect.