Process Model Explained

Chrome’s process model is extremely sophisticated. The default behavior has been examined before, but you can configure Chrome to manage processes differently: one process per web site, or one process per group of connected tabs, or one process for everything. Marc explains how this all works in Google’s new browser. Update: ‘Read more’ fixed – made a reading comprehension boo-boo there.

Basically, you can run Chrome in four different modes, which are more or less self-explanatory when you look at the command line arguments passed to the executable.

--process-per-site-instance<br />
--process-per-site<br />
--process-per-tab<br />
--single-process<br />

The first one is Chrome’s default, and is quite tricky to explain, so I’ll just let Marc do that for us.

Completely separate visits to the same site are managed by different processes, so if you had two tabs open to, one of them could crash without affecting the other. Chrome treats separate browsing contexts as separate processes.

If you’re on, and you navigate to, the tab’s underlying process may switch. In this case, Chrome switches your browsing context because you navigated to another site.

If a web page pops up another webpage (via Javascript), then the sites are considered connected, and managed by the same process. Chrome uses a single Renderer process to handle a browsing context.

Process-per-site means that for instance,, and all run in one process. Process-per-tab says it all, really; launching Chrome with this argument means each tab gets its own process. Finally, the single-process argument turns Chrome more or less into a normal browser, where there is only one process running.

The great thing about this is that it allows you to fine-tune Chrome’s way of handling system resources in such a way that it suits your hardware and/or browsing habits best. It would be interesting to see any benchmarks performed with the various arguments, to see if they make a noticeable impact on performance.


  1. 2008-09-05 10:25 pm
    • 2008-09-06 11:52 am
      • 2008-09-06 4:33 pm
  2. 2008-09-05 11:44 pm
    • 2008-09-06 1:08 am
    • 2008-09-06 3:23 am
    • 2008-09-06 3:49 am
  3. 2008-09-06 10:38 am
    • 2008-09-06 2:42 pm