Chrome: Anywhere from 50MB/tab up.
A much better performance fix would be to suspend javascript execution on tabs that aren't visible.
Chrome: Anywhere from 50MB/tab up.
A much better performance fix would be to suspend javascript execution on tabs that aren't visible.
Suspending JS execution in invisible tabs seems highly unlikely to be web-compatible; you wouldn't want YouTube or Spotify to stop playing just because you focused a different tab. On the other hand, with technologies like requestAnimationFrame, we can make it possible for well designed applications to work well when in the background.
My point for performance, though, was mainly that if you have 200+ tabs that are actively doing something, then you are thrashing even in firefox. It isn't like they just do their work for free depending on the process model.
Also, 200 is not exactly a large N when we are too worried about scheduling, is it? (That is, unless all 200 are cpu bound, in which case, again, firefox would already be thrashing.)
Not sure about the ~5MB/tab figure.... This is FF 32.0.
That is, by going to a "per process" approach, the amount of memory that gets paged in almost certainly went up. No?
I feel like I must not have been clear earlier because I have made just a single point, and both of you are discussing things not related to that point. Let me try one more time: it's all about performance of the current tab.
Why would you think the current monolithic would page out a tab that was actively being used? Why would this not also happen in the "per process" approach?
That is, how would this specifically help? If you are actively using the memory for the current tab, because it is the current tab, why would it be swapped out under the monolithic case where it would not in the per process case?
I'm perfectly willing to accept there is a scenario I am not considering. I just don't see it, right off.
I'm assuming this has come up a fair bit. Any good links to read up on this?
The only issue would be if most of the memory allocations are under your system's page size (typically 4096 bytes) and distributed randomly, so that a lot of pages have data structures associated with multiple different tabs. But I think that's unlikely, and even if it is true, couldn't it be resolved by making your allocation strategy tab-aware (e.g., by giving each tab its own malloc arena, which would be way simpler than splitting the browser into multiple processes).
Am I missing something here?
Another suggestion is to not manage it. I create tabs all the time, and often have many similar tabs. There's no need to manage it, only to clean up once in a while.
(I like many tabs. A few weeks ago I performed some tab-cleaning -- 550 tabs were a bit much, as it made Firefox start slower.)
Personally i just use it for things I would like to read at some point, instead of filling up my bookmarks with 50-10 entries every day.
Disabled that as soon as it was dumped on me. There are an almost infinite list of reasons to have multiple copies of tabs.
Honestly, I cleanup every week or two, and it works fine. Windows are by category of different things I do, and I tend to leave frequent sites open all the time.
I find it essential to manage the mess that is my Chrome tabs.
[1]: https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta...
This is the must-have feature that keeps me using Firefox -- especially when I'm doing research, which has a naturally tree-like pattern. Apparently, from the Chromium bug, it's a dealbreaker for lots of other people as well: https://code.google.com/p/chromium/issues/detail?id=344870
Panorama is a life-saver if you have to context-switch between projects regularly.
TreeStyle, really, I use more as a means to move screen real-estate to horizontal usage on my laptop's 16:9 screen. Tab organization is a side benefit.