I hope firefox handles this better than chrome - any fundamental differences between sandboxing of every thread in chrome and what electrolysis is doing?
"Sandboxing every thread" isn't exactly what Chrome does. Chrome provides a separate process for each browser tab. That, of course, requires more memory (since processes cannot directly share memory).
Firefox, on the other hand, uses a single process for the rendering for all tabs, but this process is separate from the main Firefox process. This means that the browser UI is still responsive even if one of the tabs is not responsive.
Of course, actual profiling may yield different results due to other factors that also affect memory usage, but ceteris paribus, using only two processes for n tabs should consume less memory than using n processes for n tabs.
I'd love to see a 'task manager' that can show CPU usage as well as memory use by individual tabs, because occasionally I see CPU use spike (noticed by laptop fans spinning up) and am reduced to closing random tabs in the hope it'll get better.
My experience matches yours.
I think chimeracoder means that's the way Firefox works if e10s is enabled, which wouldn't be true for you unless you've explicitly done so. (I haven't enabled it either)
Chrome does process-per-tab more or less. Current plans for e10s are to start with just 1 content process and see how that can be increased later.
So basically e10s does not suffer per-process-overhead as chrome does. For now.
[1] https://www.chromium.org/developers/design-documents/site-is...
So the reason more than one tab will crash when killing a process is that all those processes were sharing a resource of some sort?
Or another idea, have some kind of upper limit of memory a tab can use before it gets its own process.
I get that multi-process is important, but I really hope Mozilla holds off on a wider release until performance and stability are fully ironed out.
Curious testers can go to about:config and set "dom.ipc.processCount" higher than 1 to increase the number of content processes. I suggest trying this only in Firefox Developer Edition or Nightly, and not in your main browsing profile, since there are still some serious bugs and active development related to this configuration (so consider it a chance to test future improvements, rather than something that’s ready for regular use):
I'm currently working on reducing memory usage to help with this, because that's the main downside of increasing the content process count. There are all sorts of trade-offs here: performance, memory usage, address space usage, security, crash-resilience, and they all tug in different directions.
I'm pretty sure I know what loading indicator you're talking about, though I don't have a screenshot handy.
Basically, this is because one of the other tabs is hogging the rendering process. Since the Firefox UI[0] is controlled by a separate process under e10s, it's still responsive while the other process is rendering webpages. So, you're able to switch tabs before there's something there to switch to.
Without e10s, under this situation, the Firefox UI will be unresponsive while the tab is rendering web content (the browser will appear to lock up). That doesn't necessarily mean the tab will always be fully rendered by the time you're able to switch, but the loading indicator was added to e10s specifically because multiprocess mode makes this situation more likely to occur than under single-process mode.
If you want to see what I'm talking about, try visiting an Amazon product page both in an e10s window and in a non-e10s window[1].
[0] Confusingly referred to as the chrome, a name that predates the browser with the same name
[1] Unless they've fixed it recently, there's a longstanding, known "bug" that's caused by Amazon "prefetching" the content of all links on an Amazon product page. This Javascript is included only when the page is loaded in Firefox, and it's rather redundant, because the content is still re-fetched when the link is clicked. Unfortunately, Amazon hasn't fixed this, and I don't think there's much Mozilla can do about it.
I could be wrong, but I feel like I experience the white-page-and-loading-icon with e10s enabled much more often than I do UI hangs with it disabled.
If that's really what's happening, though, then the UI could be improved -- otherwise people like me will end up blaming the issue on the e10s update.
https://bugzilla.mozilla.org/show_bug.cgi?id=1046166
Eventually, I will need to migrate my user styles to a plugin such as Stylish, but I have preferred the minimalism of userContent.css.
However, seeing the mention of a multi-process user interface elsewhere in this thread is tempting me to ditch userContent so I can re-enable e10s with the multi-process UI, at least once the kinks are worked out.
I recently did a clean install of El Capitan and the problem persisted.
Is what's happening to me kind of the same thing?
Windows Max - 1,108 MiB
OSX Max - 1,694 MiB
Something Funny is happening with OSX to spike the memory usage to those levels.
Maybe Mozilla should refocus all resources to Servo and Rust... All what people expect from Mozilla is a lean modern fast independent open source browser.
I'd argue the exact opposite - that "cruft" is the reason I still use Firefox. Extensions are so much better because they can truly have native features and have deep access to the browser. From the native look and feel of the LastPass extension of Firefox to basic stuff I need like sidetabs are only possible because of this deep "legacy" API rather than the extremely limited web based APIs everyone's pushing for these days.
Kill XPCOM and XUL and you kill the only reason I still use Firefox.
At least in the current state of things, nothing to say they won't improve the web-style extension APIs at some point but they're really not ready yet in my opinion, they've got a long way to go and leave a lot to be desired.
[1] http://forums.mozillazine.org/viewtopic.php?f=23&t=2956625
The servo project also makes it really easy to get involved http://servo.github.io/servo-starters/.
Let's not forget that Mozilla Suite was a fresh rewrite of Netscape, causing years of delay - and still resulting in lots of cruft. Code without cruft may only survive in laboratory environnments.
However RAM is cheap and very useful in general. The more you have the faster your computer seems to run. Obviously if one has already hit the RAM limit of the motherboard and needs more, s/he's out of luck. I had a 4 GB laptop and couldn't expand it anymore. Then I bought one with 16 GB and I can expand it to 32 GB. I looked explicitly for that option, because I was pretty sure that sooner or later 16 GB wouldn't be enough. I rarely hit 12 GB at the moment.