This is all good… But it worries me that the Firefox team isn’t working on the “one tab per process” feature (that Google Chrome has) for the next Firefox…

I have a pretty modern laptop (last year’s) running Ubuntu 8.10 and, as I open more tabs (5+), the hard disk starts working more and more… This is the ONLY reason why, when Google Chrome comes out for Linux, I’m gonna switch!

@andysky … I’m afraid you’ll be disappointed with Chrome then, because process isolation in fact increases memory usage. It’s not the magic bullet that Google has convinced everybody it is. The main benefits are that
a) one crashing tab doesn’t take out the whole browser (frankly, this is pretty much a non-issue with Firefox… it’s very important for MSIE that crashes frequently, but if process isolation is the right way to fix it is probably worth discussing)
b) the browser can allocate more processing power to parts that should feel responsive, like the GUI and the currently open tab.

It’s not a bad concept, but we should also talk about the overhead it brings, instead of talking as if it would solve all our problems.

If I was you I’d first look at my memory usage… maybe the browser simply has to use the swap file because it’s out of physical memory. Then there’s the extension problem… some extensions need a lot of memory when they have to parse a huge pages (particularly Greasemonkey scripts and Greasemonkey-like addons often have these problems). Try to start with a clean profile (use the firefox -profile /path/to/profile switch to temporarily create a new one, the path has to exist when you do that, it won’t get created automatically)

Actually, I’d look straight at Firefox leaking memory. And with the one-process-per-tab model (OPPT? ;), at least it doesn’t start paging like crazy *unless* you hit that particular tab.

(The leaks might very well be extensions – but the same applies. If mem usage goes out of control in one tab, the other ones are not affected)

But I’d like to hear any arguments what’s *wrong* with process isolation? It does not increase memory usage significantly, if done properly (shared non-mutable data like code is handled by the VM system, after all. And shared mutable data is not a good plan in general..)

That’s the little problem: “if done right”. But doing it right requires quit a bit of logic and additional code since you don’t want to load data twice. So you put them in a shared context (or you don’t depending on how strict you want the process isolation to be. Not putting it there would solve all your worries, but it would create a lot of overhead), and suddenly you have to worry about the failing of one instance taking down the other ones. So you add logic to catch that. It’s not as easy as it sounds to do it right. Chrome often gets it wrong, and they wanted to pioneer it. MSIE almost constantly gets it wrong and has massive overhead problems because of that.

Well, yes, that’s *always* the problem. I’m not advocating FF just kick the old ways to the curb. But slowly migrating towards shared-nothing would not be a bad idea… Especially in multi-core world, this is going to be a huge boon.

(I’m not exactly believing there’s a lot of data that *needs* sharing between tabs. Yes, technically you could be sharing images/media across tabs, but that’s a pretty rare occurrence, if you ask me.)

And I’m not exactly surprised at all that MSIE gets it wrong all the time – that would be par for the course ;)

I think that’s a pretty common occurrence. Well for me at least. I often have more than 10 pages from the same domain open while browsing and if each and every one would keep separate copies of the images, I’d run into memory issues very quickly. Keep in mind that to a certain extend the images are kept uncompressed in memory… that’s quite a lot of memory. Also there’s videos, cached HTML, … things are a bit more complex than they seem, that’s all I’m saying. And that it wouldn’t help andysky with his problems anyway.