Google’s Chrome browser is a well-known RAM hog. We reported in June that Google was going to try Microsoft’s Segment Heap technology to reduce Chrome’s RAM usage by a 1/3, but in the end, Google abandoned this approach after it caused browser instability.
Now Tom’s Guide reports Google’s Chrome developers are planning to try something new. They intend to use Windows 10’s TerminateProcess API to completely shut down browser processes. The TerminateProcess function unconditionally terminates a specified process and all of its threads.
Exiting a process cleanly is difficult and expensive. Avoiding race conditions becomes almost impossible with complex software and a clean exit can be quite slow. Waiting on all threads, paging in code and data, and race conditions make it not worthwhile.
We have been gradually moving towards using TerminateProcess for more process types. Although the majority of the shutdown processes tracked by this bug are in utility processes this change uses TerminateProcess for all process types. We should not need to let destructors run so it should be safe to never use exit() (or to make it opt-in).
This should prevent the issue where you close a few tabs or even the whole browser and still find your RAM usage is unchanged.
The Chrome developers are slowly moving towards using TerminateProcess vs older methods, so we should see the browser slowly becoming less RAM hungry over time, which will hopefully mean we can finally retire the above meme.