- Google has disabled the segment heap feature on Chrome 85 because it is causing performance regression
- The improved memory usage degrades the CPU performance between 10 to 13 percent
- The Chrome team plans to reconsider the segment heap feature in the future
In Windows 10 version 2004, Microsoft added the segment heap memory improvements to reduce the memory usage of Win32 applications. Microsoft showed that its Chromium-based Edge browser was using up to 27 percent less memory when using the segment heap. The feature was also added to the Chromium open source project for testing in the Chrome browser, last month. Now, the Chrome engineers have decided to disable the feature by default because the improved memory usage is affecting the CPU performance.
An Intel engineer discovered that when Chrome uses the segment heap instead of the legacy heap, it is causing significant performance regression. According to a Chrome developer, “The CPU cost (10% slowdown on Speedometer 2.0, 13% increase in CPU/power consumption) is too great for us to keep. So, the plan is to disable this for Chrome 85 and reconsider in the future.”
A Microsoft employee wrote on that thread, “It is common practice to trade one resource for another. More often it’s increased memory usage for reduced CPU usage. In this case, it’s increased CPU usage for dramatically reduced memory usage, or more accurately commit.” To reduce the impact of performance regression will require “significant changes across the entire browser codebase.” Windows team is also investigating options to improve the performance of the segment heap.
For now, the Chromium team has disabled the feature in Chrome 85. However, the company plans to collect more telemetry data from Chrome running on Windows 10 version 2004 to determine the performance impact and to confirm how much the memory savings are. The chromium team is also planning to add the HEAP_CREATE_SEGMENT_HEAP flag that will allow the developers to test the feature more easily.