If you’ve ever taken a peek in Task Manager while running Google Chrome, you may have been surprised to see that the number of chrome.exe entries radically exceeded the number of actual Chrome windows you had open. What’s the deal with all those processes?
Why Multiple Processes?
Modern websites a quite complex — they have tons of “moving parts” that interact with each other, and with the user. Increased complexity means that the demand placed on your computer has increased too.
You may have noticed that Google Chrome will often have more than one process open, even if you only have one tab open. This occurs because Google Chrome deliberately separates the browser, the rendering engine, and the plugins from each other by running them in separate processes. The browser portion of Chrome is the part that actually handles the traffic going to and from the website. The rendering engine — formally named Blink — interprets the code running on the website and displays the human-friendly version. Plugins, like Java, add additional functionality to the browser. But why separate them?
It turns out that separating them confers a lot of advantages that can broadly be broken into three categories.
Websites are complicated, and the more complex a website is, the more ways things can go wrong. If something does go wrong, it often results in a crash. If everything is running inside of a single process, a crash on one page will result in your entire browser crashing. At worst, you could lose hours of work on a project. At a minimum, you’ll have to restart your browser and reopen all of your tabs.
Isolating each tab in its own process, and even some portions of individual webpages, means that a crash from one site or plugin will not bring your entire browser down. You can just kill the broken tab instead of having to restart Google Chrome completely.
RELATED: How to Troubleshoot Google Chrome Crashes
Originally computers only had one central processing unit (CPU), and one core. That meant they were only capable of performing one operation at a time, they were just fast enough that they appeared to be doing multiple things simultaneously.
The processors found in modern computers are quite different from their single-cored grandparents. Most modern CPUs have multiple cores, which means they’re capable of performing as many operations simultaneously (often described as “in parallel”) as they have cores. The CPUs found home computers and cellphones regularly have between four and sixteen cores.
Splitting the functions of Google Chrome into multiple processes makes it easy to take advantage of a larger number of cores. Instead of burdening one CPU core with twenty Chrome tabs, you can split the processes between multiple cores.
Many hands make light work; many cores make for faster browsing.
RELATED: CPU Basics: Multiple CPUs, Cores, and Hyper-Threading Explained
Running everything in separate processes also makes it easier to protect your computer against malicious code running on a website. Each instance of the rendering engine in Chrome is sandboxed, meaning that it is mostly isolated from the rest of your system and even other tabs open in Chrome. All of the traffic from the rendering engine is closely monitored by the browser, helping to ensure nothing suspicious or nefarious makes it onto your system.
The setup isn’t perfect — zero-day exploits are notorious for waltzing right out of sandboxes — but it does go a long way towards protecting you.
RELATED: What Is a “Zero-Day” Exploit, and How Can You Protect Yourself?
View Running Processes
You can see the details of the processes by opening up Google Chrome’s task manager. In Chrome 99, you can access it by clicking the three dots in the top right-hand corner and navigating to More Tools > Task Manager.
If you want to read a bit more about how Google Chrome functions under the hood, you can check out Google’s Chrome Comic. Here is the segment relevant to Chrome’s multiple processes.
The entire Chrome comic is a worthwhile read for Chrome fans, as it explains many other design choices involved in the production of the browser.