Hacker News new | ask | show | jobs
by joe_the_user 4862 days ago
I am not sure what would theoretically prevent each web page and each application from running on a separate core (or two). Considering the number of people who love multiple tabs, I can't see how that wouldn't seem like a win for even thirty or more cores.
2 comments

The problem is that most web pages and programs don't actually do very much when they're in the background, and many (most?) of the software that does grind away for long periods of time without user interaction (compilers, ray tracers, video encoding etc.) are already able to make good use of many cores. But users who fit that profile are a niche market.

What the vast majority of users need in terms of speed is acute performance. A dedicated core for every webpage is not very useful because users don't load up a bunch of tabs at the same time and then flip between them many times per second, interacting with each one. Instead CPU usage tends to happen in short bursts directly following user interaction, so even if every tab has its own core, you won't usually see very much contention for CPU between different tabs. The same goes for most native programs. Users just don't multitask fast enough to make separate cores relevant for most programs.

I think the problem is that hardcore parallel programmers can't understand the needs of adhd web browsers.

Some fractions of web pages are all sort of ridiculous Javascript and seriously slow down my machine.

And I, personally, do flip pages at a significant rate.

>Some fractions of web pages are all sort of ridiculous Javascript and seriously slow down my machine.

Yes there are exceptions, but not enough to plausibly make use of more than eight cores. The returns are usually diminishing at even four cores.

>And I, personally, do flip pages at a significant rate.

More than two or three times per second? Because that's what it would take.

I thought some browsers already do this? But it still won't make use of more than a very small number of cores, one (or a couple) for the tab you're interacting with, and a small part of another one for all the other tabs that are sitting there idle.
Chrome does split pages across different processes, and this, as far as I know, makes use of multiple cores. For (I assume) memory overhead reasons, it doesn't put each tab in a separate process by default, although there is (or used to be) a flag to switch to that behavior.