Chrome is generally a fast browser and even when it starts to feel sluggish there are a bunch of things you can do to speed it up. But have you ever looked at the Task Manager and noticed dozens of chrome.exe processes running even though you only have one browser window open?
Also, have you ever felt like Chrome spawns a new chrome.exe process every time you open a new tab? Aren’t all these processes slowing down your computer? Why does Chrome open all these processes anyway?
In this article I’ll explain Chrome’s obscure multi-process architecture and show you one trick to get a handle on all those maverick chrome.exe instances.
Help, I’m inundated with processes!
If you haven’t already done so, fire up Google Chrome open four pages in four new tabs then press Ctrl + Shift + Esc to view the process list in Task Manager.
How many processes do you see? I’m counting eight chrome.exe processes on my computer yours may vary but it will almost undoubtedly be an integer greater than the number of open tabs.
This is what’s going on:
The Chromium team designed Google Chrome so that it puts web applications and plugin’s into distinct processes which are separate from the Chrome application itself. Part of the rationale behind this driven by performance and the other half was a function of security.
If all tabs were locale to single process then when the rendering engine in in one web app crashed it would bring down the entire browser; all the apps, tabs and plug-ins would die too.
By spinning off multiple processes the browser functions more like an operating system that can isolate web apps from each other so that the browser doesn’t lockup because of one unruly web site.
Any web pages that exploit vulnerabilities in the rendering engine have the potential to gain complete control of your computer. By running web apps independently the Chromium team was able to restrict processes to isolated sandboxes that limit the damage wrought by any exploits.
Managing all those processes
To get a grip on all your processes you should use the built in Chrome Task Manager by pressing Shift + Esc inside Chrome or right clicking the Chrome title bar and choosing Task Manager.
This will give you deeper insight into each of the chrome.exe processes you see in the Windows Task Manager.
Generally speaking you’ll see one task for each chrome.exe process along with stats such as memory, CPU and network activity. If you need more information just right click in the window to select from 17 different categories.
Using the Chrome Task Manager lets you find the biggest offenders and click End Process to speed your browser up again.
How it works
Chrome spawns a new chrome.exe process for each unique domain you have open in your tabs. In addition, there’s always a task for the Browser itself.
So for example, in general, if you have 5 tabs open, 3 for cnn.com and 2 for yahoo.com then you should see 3 tab processes in the Chrome Task Manager and 3 chrome.exe processes in the Windows Task Manager. (This assumes you don’t have any plug-ins running because they would need their own processes too):
- 1 for the Chrome browser itself
- 1 for the cnn.com domain
- 1 for the yahoo.com domain
After Chrome kicks off about 20 chrome.exe processes it starts re-using existing processes to keep the browser from screeching to a halt.
Charlie Reis of the Chromium team posted a pretty good explanation of how Google Chrome manages multiple processes and why the Chrome decided to adopt this architecture.
The Bottom Line
There are three kinds of chrome.exe processes:
The Browser consumes exactly one process and is responsible for managing everything in the browser. The Renders basically displays the web pages. All the juicy HTML5, CSS3, jQuery and Web 2.0 goodness is handled by the renders. Also each plugin gets it’s own processes so if something like Adobe Flash crashes it doesn’t destroy the entire browser.
The next time you see a bunch of chrome.exe processes in the Windows Task Manager, just press Shift + Esc in Chrome to see which processes are eating most of your memory and End Task.