3 ms·
Shot in the dark here, but Chrome was developed back when it was common to have a single core CPU without any hyper-threading. An easy way to balance load is th
by drzaiusapelord 10y ago
Shot in the dark here, but Chrome was developed back when it was common to have a single core CPU without any hyper-threading. An easy way to balance load is this scenario is just make a bunch of processes and have the OS do all the heavy lifting in regards to scheduling as everything has to share that one thread. You also get the benefit of bad processes dying without taking down the entire browser. At the time Chrome was coming around, browser stability was a larger issue than it is today.
Now that everyone has a multi-core cpu, it makes more sense to not really worry too much about scheduling. The OS will just move stuff off a busy core and onto a less busy core dynamically. So why not just separate the UI front end from the rendering and call it a day? Why bother with so many processes when you have cpu cores to spare? The UI and renderer will run in their own cores when they get too cpu hungry. Also, if the renderer crashes, no biggie, the UI just re-renders everything.
- sp332 10y agoBut if you have a tab with heavy JS, that's going to slow down all the other content as well since they must share a CPU. If each tab got its own process, the heavy one could get its own core. Same if one crashes, it takes all the others down.
- drzaiusapelord 10y agoMaybe they can't do multi-process because of legacy code concerns. Also, you gain memory savings as you aren't spawning all those processes which have redundant libraries and such loaded.