Multi-process Firefox's will use up to 20% more RAM initially
Multi-process Firefox's memory use will increase between 10% to 20% initially on average according to a memory test Mozilla ran recently.
Multi-process Firefox, short e10s, is a major feature for Firefox that has been delayed several times already. Mozilla runs test in beta versions of Firefox currently and plans to release e10s when Firefox 46 Stable is released (subject to change).
Even though most of what it adds to Firefox happens in the background, its integration in the Firefox browser will have an impact on all users of the browser.
Probably the two main areas of interest to users of the browser are compatibility and memory use. Firefox users who look across the pond to see how Chromium-based browsers handle multi-process will notice that these browsers have a higher memory usage compared to Firefox when the same number of tabs are opened.
A recent memory benchmark revealed information about the memory usage of Firefox with e10s enabled as compared to Firefox without multi-process architecture.
In short, Firefox users should expect a 10% to 20% higher memory use with e10s enabled in the browser. The figure is rough, as it depends on parameters such as the number of open tabs, which websites are loaded, which add-ons are installed that change from user to user.
The test itself was run on Linux, Windows and Mac OS X systems and involved the following six steps and measurements:
- Load Firefox with n-content processes.
- Measure memory usage.
- Open 100 urls in 30 tabs, and cycle through tabs once 30 are open. Wait 10 seconds per tab.
- Measure memory usage.
- Close all tabs.
- Measure memory usage.
Mozilla plans to launch multi-process Firefox with one content process initially, but the test was run with 0, 1, 2, 4 and 8 content processes.
While you will notice an increase between 10% to 20% usually between the 0-content process configuration and the 1-content process configuration, memory usage may jump to 200% if more content processes are added.
For instance, a 32-bit version of Firefox on Windows used about 461 MiB with the tabs opened in the browser and e10s not enabled, and 537 MiB with e10s and one content process enabled. An increase to four content processes saw a jump in memory use to 800 MiB, and an increase to 8 content processes one to 1099 MiB. Similar increases can be observed on Linux and Mac OS X machines.
Overall we see a 10-20% increase in memory usage for the 1 content process case (which is what we plan on shipping initially). This seems like a fair tradeoff for potential security and performance benefits, but as we try to grow the number of content processes we’ll need to take another look at where that memory is being used.
Conclusion
Firefox users should anticipate an increase in memory use when Firefox's multi-process architecture is enabled by Mozilla. The increase varies based on use, but it will be between 10% to 20% on average.
This will never work as firefox was not designed to run a multi-process browser.Mozilla really should consider creating a new browser with a new architecture designed for this purpose.
And this is why I bought 32GB ram.
“Multi-process Firefox’s will use up to 20% more RAM initially”
And a lot more later when multiple content processes will be enabled. Every content process adds A LOT of overhead. In practice if you open several tabs it might double, triple the memory usage. Or whatever the size of your memory. At which point you either get a firefox (and other application) crash or a system crash. Fun…
Thanks for clarification.
@Earl
“neither of which has any real-world value for the typical user of Firefox”
Of course they do, with electrolysis if anything were to go wrong within any open tab that fault will not end up crippling the entire browser.
Please correct me if I’m wrong, but didn’t the old Opera (ones before v12) behave like this?
Yeah I didn’t like Opera 12 either. Opera 10 was great, but I remember Opera 11 having a benefit of some kind over 10.
No, Opera Presto never had multi-process capabilities, though the lag induced from updating from Opera 10.10 to 11.0 fooled me into thinking that they had in fact introduced multi-process, and screwed up their coding. Everyone cries woe that they miss Opera 12. Well, I miss Opera 10 – fastest (read: least GUI lag) browser ever made.
I do not know, I have never been an avid Opera user.
old ff can only load one CPU kernel and 2 GB of memory,
current ff can fully load yor GPU, all CPU kernels and 8 TB of memory and causes laptop fan to start
thats nice
edit:oh, its 8TB per process, so we get 8TB*(number of cores)
there is no RAM this size, so prepare your SWAP space. Muhahahaha!
Chrome has multi process from the beginning and it also uses a lot of memory. When I use the same amount of tabs I use on Firefox on Chrome, my system becomes unusable.
I think e10 will be worth it with the exception of the whole extension fiasco. I don’t care about benchmarks, but e10 on Nightly has been noticeably smoother to use than vanilla Firefox. A lot less “jank” than stable Firefox especially when you compare vanilla Firefox to Chrome. Also 10-20 percent more is still a lot better than what Chrome uses regardless.
The Palemoon project won’t use e10 so if people want a Gecko non e10 gecko based browser than you have that.
Pale Moon no longer uses Gecko, it uses Goanna now. I don’t know how much difference that actually makes, but there you go…
More or less the same similar to Blink and WEbkit
Gee, I thought signing was supposed to get rid of all of the “misbehaving” add-ons, so what real purpose does e10s serve? (foxy see, foxy do?)
Extension signing and electrolysis have nothing to do with each other at all. Signing is ‘supposed’ to keep ‘bad’ (malware-type) extensions from being installed. Electrolysis completely fracks up how extensions need to be designed in order to work without slowing down the browser. Oh, and separates the the process that handles the browser window from the process(es) that handle displaying web pages.
Note that a fairly good chunk of the more popular extensions have been rewritten as needed, and Firefox with Electrolysis enabled is much nicer to work with than Firefox without. (I’ve been forced to use non-Electrolysis the last few weeks, and have been firmly reminded of the extra pain.) Doesn’t mean it’s near where it could be, though.
@Martin, I hope so. In fact difficult to be objective, with on one hand the improvement brought by Electrolysis and on the other add-ons’ compatibility and, to be totally subjective, with the add-ons I’ll have once Electrolysis comes out in Firefox’s stable release. To resume, my true hope is that “major” add-ons of mine will all have been updated to support e10 at that time (I think they’re all essential to me but having always thought so proved to be wrong sometimes in the past).
Concerning the RAM increase with Electrolysis this is news for me. 4GB of RAM is nowadays what 1GB was only a few years ago: becoming a very strict minimum. I’ll have to add more RAM, inexpensive moreover, it’s becoming imperative I guess.
@David,
“Note that a fairly good chunk of the more popular extensions have been rewritten as needed”
I have 65 add-ons running and my Firefox profile’s extension.ini file shows in its [MultiprocessIncompatibleExtensions] section 36 add-ons … at this time, on my config of course, over 50% of my add-ons are not Electrolysis compatible. They may be, I hope, before Electrolysis becomes mandatory.
In fact I haven’t quite understood if Electrolysis, once factual in Firefox’s stable releases (Firefox 46 or later) will be imposed or will be offered as an option.
My guess is that Mozilla will enable e10s by default (maybe first only for users without add-ons, or only compatible add-ons), but will provide a (temporary or maybe even permanent) option to turn it off.
And here I am just trying to “pair” 2 things, neither of which has any real-world value for the typical user of Firefox, but which exist merely to satisfy the broken thinking now dominating Mozilla. Thinking of extensions as separate from “the browser” is the first mistake.
I had a smile on my face until I read that title, I guess we all should be more mindful of how much content we browse using the browser when this version lands.
Most people use the Chrome. I usually play SuperTuxKart and let the Firefox Nightly downloading without feeling any impact, and have 4 GB. I don’t think that will be a serious problem for end users. Only for those eager for numbers.
I’ll have to google “content process” to find out what that means. Do others know?
Sounds like it will cramp my style on my 4GB PC which I have running a 1GB RAM drive.
The e10s project will separate Firefox data into two streams: the “main” process and the “content” process. The main one will be the browser core itself, while the content will be all the web-related data (basically the contents of websites). Each process will be able to go to a different core of a multicore CPU.
The 10-20% overhead that Martin is talking about is for the entire content process regardless of how many tabs you’re running. It’s not going to make a big difference to most people. Heck, I frequently run Firefox on a laptop with only 2 GB RAM and I’m not worried in the least.
@Corky: I believe that by default, Chrome creates a new process for each new tab. But there is also a way to make it open all tabs in one process (as Firefox initially will be doing with e10s). Martin described this here: https://www.ghacks.net/2015/02/08/save-memory-in-chrome-by-using-one-process-per-site/ .
There are pros and cons with each method. It’s nice to have separate processes if you only have 3 or 4 tabs open, but it gets really stupid once you’re at 10+ tabs.
@Jason, Thanks for clearing that up. :)
From your explanation it seems Firefox is doing it differently than Chrome, that’s if I’ve understood thing correctly, does Chrome run each tab in a separate process versus Firefox having a “main” process and a “content” process shared between all tabs?
If i had to guess, and it is only a guess, i would say they’re referring to the amount of resources (RAM,CPU) that gets used to render and display each tab.
I don’t understand why would they launch the multi-process Firefox before optimizing it…
They haven’t launched it. It’s been delayed multiple times.
I bet it’s configurable via about:config (hopefully), but I’m sure. :)
seems that only advanced users of Firefox Developer Edition@ mozilla.org/en-US/firefox/developer/ have the ability to use or disable the said option.
Mozilla should expect that its share of the market will decline exponentially once this is foisted on users. Google Chrome will be main beneficiary.
I don’t see any problem, of course optimization is always possible but the user can decide to use/activate it or not and for me it’s okay if I’m more secure with this, so the compromise is okay (for me).
losing it’s biggest advantage over competition…
Just install an SSD
Will you send me one?
Awful GUI lag is an advantage? You seem to be misinformed. e10s is a good thing, it significantly reduces the GUI lag Firefox has been plagued with since v3.0 and possibly before that even.
So those who use a computer with only 4GB of RAM, and use Firefox now, and their RAM averages around 75% used at all times, will see an overall slowdown of the computer when this comes out?
Not unless you have the swapfile disabled, duh.
Windows will swap inactive blocks of memory in and out of RAM at high usage.
Well, if you happen to use a laptop and it happens to has a 5400RPM HDD (which usually *is*), then paging-in and paging-out a lot of data from that slow HDD *will* cause noticeable delay/slowdowns/performance lag to the user.
Even more so, many budget/low-end laptops on sale today still include 2GB RAM as default, thus ensuring a lot of paging to/from HDD will happen.
And finally, as a cherry on the top, that 2GB of RAM will be shared by many, many bloatware apps that come preinstalled by the OEM, too.
Regards.