Why does Chrome group my tabs in processes and how can I stop it?

Solution 1:

According to Chrome documentation, there is a --process-per-tab command line switch that does what you want.

Solution 2:

For me, they have not yet solved the problem.

Here are a few links discussing the issue in further detail:

http://code.google.com/p/chromium/issues/detail?id=81877

http://www.google.com/support/forum/p/Chrome/thread?tid=2c6c5ffd1dcd19c5&hl=en

http://code.google.com/p/chromium/issues/detail?id=36617

There is a switch statement that you can run (should be an option in the control panel for those non-CLI people) that forces a new process per tab, but after further reading and discovery, it doesn't actually force separate processes per tab per se.

Here is a link to the chromium discussion and design document supporting their design and architecture for the chrome browser and all chromium related process models. I'm guessing Android and Chrome OS fall under a similar type of design spec.

http://dev.chromium.org/developers/design-documents/process-models

The switch's name is a bit misleading because it says to me "one process per tab", but in actuality it is one process per group of tabs with similar scripts, which is constantly being refined and merged into one giant leviathan of a process. Mine also get upwards of 500 to 800 MB. Nearly a gig of memory just for a single process. It slows my computer to a halt. More so, probably because all of that memory is getting paged out, but either way, if each tab were a separate process, at least the memory and paging operations would be different across the board, essentially distributing the load both on CPU and memory (including paging).

Chromium also supports a simpler model which dedicates one renderer process to each group of script-connected tabs

The open-source "chromium" project's words regarding the one-process-per-tab model:

"Chromium also supports a simpler model which dedicates one renderer process to each group of script-connected tabs."

There is a global limit to the number of renderer processes that Chromium will create. This prevents the browser from overwhelming the user's computer with too many processes. The limit is currently 20 renderer processes on most machines, and fewer on machines with small amounts of installed memory. As a result, a single renderer process may be dedicated to multiple sites. This reuse is currently done at random, but future versions of Chromium are likely to apply heuristics to more intelligently allocate sites to renderer processes.