1

I am wondering what is the purpose of Chrome using multiple processes for each tabs? I asked this to C++ chat room and one responded it is a product of laziness. I personally believe this is an example of "Distributed processing" like in Erlang programming language. What exactly is it?

  • I wasn't aware that "many" meant "one person". – Etienne de Martel Jun 20 '13 at 4:53
  • 1
    chromium process models may be of use. – user40980 Jun 20 '13 at 4:54
  • "Unlike process-per-tab and single-process, this model requires complex logic to support swapping processes in a tab when it navigates between sites, as well as proxying a small set of JavaScript actions that are permitted between origins, such as postMessage." - Google's Chromium Process Model's Documents – user1870398 Jun 20 '13 at 5:00
9

It's simply to completely separate failure of each different tab and plugin.

When one fail, whatever the way it fails, only this one will crash. The monitoring process will just report that it failed and will be able to reload it.

C++ have shared memory by default and an exception system which makes easy to crash the whole application if one part isn't working correctly. It completely solves this problem.

It also allows easier sandboxing of plugins as they have their own process so they benefit from the same advantage: if they fail, Chrome don't.

It might also have some advantages on memory management as it's easier for the OS to allocate only for one process use of memory instead of several modules working with the same memory which basically means fragmentation and slow-down when the memory allocated gets bigger.

It's about isolating each application resources management.

Basically Chrome is designed more like a decent OS for web applications (whatever that mean).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.