TP5 loads 100 popular webpages, served from a local webserver.
I don't know if that means the test pages are up-to-date copies of real-world pages or not. On one hand, real-world pages have certainly been getting heavier, and it would bear mentioning if that fact was not reflected in this test. On the other hand the graph becomes really hard to interpret if the test suite isn't a constant.
[1]https://build.mozilla.org/talos/zips/tp5.zip
[2]https://github.com/mozilla/areweslimyet/blob/a42e69eaac4c764...
The average consumer hardware improves at nowhere near exponential rate (although I guess it depends on the timescale and your willingness to fudge the graph to sparse data points).
The performance has gotten worse for users of a computer from 2006, but it has improved for users of ten-year old computers (since a ten-year old computer in 2012 would have been from 2002). If you assume that a computer is less likely to be used the older it gets (and that this rate is roughly stable), then I am not ignoring older hardware at all.
>although I guess it depends on the timescale and your willingness to fudge the graph to sparse data points
thus is the nature of all real-live long-term trends. If you pick a sufficiently small timeframe, they never work.
I'm not sure I follow that logic.
/edit: Yes this is wrong. I made a mistake. My "gaming" desktop is "only" 8 years old. It has a 4 core AMD processor. It's on par with current atoms.
A 11 year old Pentium 4 @3.4GHz has a passmark score of 401. A modern 2-core $40 Celeron G1840 @2.80GHz has a passmark score of 2984. And that's among the cheapest processors you can get as end-user.
1: https://www.cpubenchmark.net/cpu.php?cpu=Intel+Pentium+4+3.4...
2: https://www.cpubenchmark.net/cpu.php?cpu=Intel+Celeron+G1840...
It is meaningful when you consider what the average user is purchasing. Back then you had to purchase good stuff to run the latest office apps, etc. It was common that the only thing needed to get a friend into the gaming world was the purchase of a graphics card. Now most casual users do not have anything close to what is offered in high-end gaming PCs.
Maybe it should be "00es"?
Source?
RAM available in mobile phones seems to grow exponentially [1]. Power efficency of processors also seems to grow exponentially [2] (does anybody have a source for ARM processors?).
[1]: https://i.imgur.com/AWkmMJc.png (note logarithmic scale) [2]: https://www.karlrupp.net/2013/06/cpu-gpu-and-mic-hardware-ch...
Remember that RAM has to be powered on for every refresh cycle...
It is "nothing" compared to screen or radios, but it is there. So you won't be seeing more than one Dram chip in there, footprint notwithstanding.
I don't think that's representative of how Firefox works. I used Firefox similarly in 2013 and didn't see those problems; the users supported by my company, mostly on 4GB machines, also didn't see them.
I have a 112 tabs open right now and Firefox has been running for a couple of weeks, which means thousands more have been opened and closed. It's using 4 GB of memory (EDIT: Which is more than usual, but it's fine with me).
Firefox is still a lot better at RAM and CPU usage when hundreds of tabs are present in the browser. This persists when using e10s.
I have an extension that basically unloads a tab (I guess it freezes the state and serializes it to disk) and frees its ram.
It works very well, so well I'd love to use it on my phone too.
I have commented at length why I use so many open tabs. Basically that's my cache-to-do-list. Once I revisit certain tabs enough times they get upgraded to a bookmark. What bookmarks don't do well but tabs do marvelously is preserve the trajectory and context of how I arrived at the page. Very useful to recreate the state when I visit it later.
It only loads the actual tab when you activate it though, so I don't think all the tabs are being stored in memory, just the ones you activate during a session. I probably actually load about 30 or so during a session, with many more being opened, looked at then closed.
Tab Mix Plus FTW!
That indicates really poor buying decisions! I'm curious about why would this happen.
I do get what you're saying though.
its good to monitor and ensure that stays within acceptable parameters though, and potentially improved upon again. at least the gain is pretty slow since they "fixed all the stuff"
Firefox was first released for android around the time I bought it though, and turned it into a capable web browsing device.
Its also one of the most energy efficient on most platforms.. (edge is more efficient on Windows, though it does not take into account that the engine is always running even if another browser is in use)
I've been tracking lots of programs with powertop, including many browsers, in the quest of an efficient desktop and Firefox is pretty good.
I also appreciate its great plugins. With vimperator I can configure Firefox using a dotfile, and setup lots of neat things like:
1. A ssh proxy mode that also routes DNS queries
set! network.proxy.socks=localhost
set! network.proxy.socks_port=8888
set! network.proxy.socks_remote_dns=true
command -nargs=1 proxy set! network.proxy.type=<args>
2. Site-specific Google searches, with autocomplete for the site URL
command -nargs=+ -complete=url site open google site:<args>
map s :site<space>
All this is really neat functionality, and very simple to achieve. I am waiting for good per-tab sandboxing, but in the meanwhile I have aliased firefox to /usr/bin/firejail so the whole application is sandboxed.
Apologies for the offtopic, but it's really exciting how a program that seemed to have lost development momentum is becoming really great again. Quite close to being the emacs of browsers if you ask me, with so many features and scriptability. Paradoxically you can get best access to these features with a plugin that tries to emulate vi, but you get the idea!
I couldn't find much doing a google search for "vimperator ssh".
I really wish I had the option to trade off responsiveness for memory usage by being able to mark tabs as "no background activity allowed" so FF could serialize that content to disk when the tab isn't in focus.
I've heard that some people set Firefox to not autorestore tabs on load, and then periodically close and reopen Firefox, so their background tabs aren't loaded. Pretty clumsy, but I guess it gets the job done. I don't know if there's any addons that do something similar.
> What if you spent a few hours filling out some government form online, then you went and took a break by watching a few YouTube videos? Memory usage might spike up, and the browser decides to unload the tab with the form. You'd be mad if form state got lost when you switched back.
GP is talking about actively marking tabs as "no background activity allowed".
I have been searching in vain for something like that: stop scripts in background tabs except for specifically whitelisted pages.
There is absolutely no reason that I can see why every website and their ads should be allowed to roam around freely in the background.
There is however a number of reason why they should not be allowed. Battery life and phishing attempts readily comes to mind.
I guess whoever comes up with a well-working extension for that can easily ask me for USD 30 or even 40 and expect me to be a walking billboard for it ;-)
Have you tried UnloadTab?
If it is unloaded that means I have to connect to the Internet again to get hold of my page again?
(I'd think what I want is just to pause any javascript or other processing from any webpage that us not focused in the browser and not specifically whitelisted.)
That's also a bit beside the point. I have a workstation with 48 GB RAM. I left a browser running in the background and had one tab consume 20 GB on its own before I killed it. Many of these leaks seem to just be unbounded memory growth, so that hypothetical 2 GB you add is going to be eaten up in short order anyway.
Of course the extra 2Gb might help for someone with less than 48Gb in their machine (most of us!).
But my original point is really that dismissing gross memory usage by saying you can buy more RAM for cheap is no longer accurate. In many cases, your machine's configuration is unchangeable. Getting an extra 2 GB RAM isn't $30, it's the cost of a brand new device. In other cases, where you might have configurable hardware, you often have to buy the largest capacity chip available and the economics get skewed. For SODIMMS, going 8 GB -> 16 GB is reasonably cheap, 16 GB -> 32 GB is fairly expensive.
I'd argue having to do a hardware upgrade for a web app in the first place is a bit silly. There's often very little reason for these apps to be so large in the first place.
It is about things like harrassing my CPU multiple times a minute after my search results have loaded (looking angrily at you googlers, google was the worst offender here it seems! (Windows 10, FF))
My phone reports it has 600MB of RAM free, so I dunno what's causing FF's behaviour here nor how to disable it. I can't always reproduce it, but it happens enough that every browsing session has some sort of frustration.
To make this work reliably would be quite difficult.
Or you could be really conservative: only assume statelessness for pages without forms and without any Javascript. (These do exist!)
We have seen things people wouldn't believe. Webpages without any Javascript. Webpages using correct http responses. Watched C-beams glitter in the dark near the Tannhauser Gate. All those moments will be lost in time, here come the transpilers
https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta...
For me, it is /the/ absolute killer feature for browsers.
---Alex
I tried to use chrome once and it ate all my ram, and they were saying it uses less ram then firefox back then.
More search tips can be found here: https://support.mozilla.org/en-US/kb/awesome-bar-search-fire...
edit: oh, I'm using ad blocking add-on and maybe you don't, that could be one reason, besides different websites another reason could be that you have the browser open longer than me.
> so FF could serialize that content to disk when the tab isn't in focus
Isn't there an extension (Suspend Tab?) which does this?
There are many things that can be done
A lot of the improvement in the reliability of consumer grade SSDs is due to OS improvements in how they manage their write operations to the hard drive. Windows is considerably more conservative in how it uses it's page file and what does it write off to the SSD, linux has also made a lot of improvements in how it uses the swap partition if it uses it at all, other things like having to be able to suspend the PC in "hibernation" mode without actually having to write a "hibernation" file to disk by keeping the CPU at pretty much an off state but refreshing the ram also saves a lot of day to day write operations especially on mobile devices.
So overall I highly doubt that Firefox went with the suspend to disk route, because if it did it would be a pretty big step backwards.
Also as power conservation goes writing to SSD/HDD is more expensive than writing to RAM and keeping it refreshed, so using the SSD as a storage device instead of the RAM can also have negative effects on the battery life of mobile devices.
>A lot of the improvement in the reliability of consumer grade SSDs is due to OS improvements in how they manage their write operations to the hard drive.
We're talking on the scale of writing 500gb to your SSD every single day for 10 years in order to reach their endurance limit (on average). Writing a few more gb at worst from your browser is hardly going to affect that. It's even doubtful that OS improvements change it much, as Windows 7, which a lot of people are still on, doesn't come SSD optimized.
Also, from a more philosophical standpoint - this isn't Mozilla's issue. They shouldn't have to worry about conserving SSD writes. That's not their problem. That's the OS / Disk firmware / manufacturer's problem. If I want to write files to the disk at a very reasonable rate, I should feel free to do that.
Do you have any references for this? I don't think I've ever heard a story of a consumer user running out their writes. Not saying it hasn't happened, but it's not enough of a common occurrence to be a major factor in reliability.
In my experience the overwhelming improvement in reliability is in the firmware of these drivers coming out of the perpetual beta phase (and the death of OCZ)
As for security, no, unless there's some unknown vulnerability now (or that they create), that will be ported over and somehow more effective between (potential) processes. So, I doubt it.
Ref: https://labs.vmware.com/vmtj/memory-overcommitment-in-the-es... (search "page sharing")
Should be vulnerable to FFS, if I'm not mistaken: http://arstechnica.com/security/2016/08/new-attack-steals-pr...
It's sort of like when WebGL was first getting going, and the GPUs of the time didn't expect to be fed shaders directly from potentially-malicious web sources. Rather than severely restricting the WebGL API, we got a new generation of GPUs that fail safe.
When Rowhammer was first announced, people said "it's okay, we have ECC". Then ECC was shown vulnerable. "It's okay, vendors have promised to fix it in DDR4", they said. Now DDR4 is out and vendors have not deployed the fixes systematically[1] and you have to benchmark every single RAM stick to make sure you're not vulnerable.
I'd really appreciate software workarounds as long as hardware vendors keep fucking up.
[1]: http://www.passmark.com/forum/memtest86/5395-rowhammer-mitig...
fork(2) does COW. With careful design† forking a new process only results in new and modified pages being not shared.
† Hard! But single-process threads + security is hard too.
http://unix.stackexchange.com/questions/58145/how-does-copy-...
Just wanted to point out that memory usage isn't necessarily inherent to multiprocess, but with a sizable portion of users on Windows the point is practically moot anyway.
b) hosting some tabs in the same, sandboxed process is still stronger than hosting all of them in the parent process.
So you shouldn't assign too much weight to it.
So splitting everything in sandboxed processes can play a big part in the security in a defense in depth approach. Of course you are not going to call it a day with just that, but still, it's extremely significant.
How so? Are you saying that simply by being single-process currently firefox is orders of magnitude less secure than other browsers?
And that it would still be orders of magnitude less secure even with sandboxes, where just multiple tabs might share a sandbox?
From a modeling POV it might actually be better than ASLR, DEP, etc, which are "only" mitigations for which multiple approaches are know to exploit other holes up to arbitrary execution and complete compromises in some cases, even if they are perfectly implemented (in limited conditions), while multiple sandboxed processes can be, at the model level, perfect. In practice (when you add bugs in the picture in all layers, and not just one, and when you actually don't isolate everything like crazy), it is obviously just another tool, but a very significant one (let's drop the "extremely" - it not about being an order of magnitude more "efficient", which would be a very blurry notion anyway -- I mean I guess at one point DEP even alone could maybe be considered orders of magnitude more secure, depending on your precise definition of everything).
What I want to convey about defense in depth is that it is about layering various mechanisms, independent if possible, to protect against various risks, while making the hypothesis that some will fail. You don't casually remove a layer (or pretend that a layer is equivalent to almost none because it does not protect you against one risk in some cases). Defense in depth is actual engineering, like the various safety components in any dangerous system. And the value of sandboxed processes is pretty clear. That it is not a silver bullet does not render it useless.
that said i think firefox's choice is more sensible.
If it's just inefficient, that's a different story.
So what you might think of a benefit one day might be a drawback the next if you want to open twice the same amount of tabs, or run a big build in the background.
Firefox is my favorite browser overall (especially on other OSes), considering its smaller memory footprint and lack of sluggishness with tons of tabs (compared to Chrome) and the fact that it's from Mozilla, a company I hugely respect and admire (even with some of the missteps that have happened in some aspects in the past few years).
FF is for work, Safari for non-work. Chrome when I need Flash or testing Chrome-only content (some great plugins) - pretty rare.
Can't wait for this fix!
In actuality, very few non-server PCs can be populated with any more than 16-32 GB. It's not a matter of bother or expense at all. It's a design limit.
Every single time I've driven a non-server PC into hopeless swap thrashing, it's been the damn browser that was the culprit. Don't bother trying to advise me to bookmark 100 open tabs in 10 windows to save space. That is (forgive me) an insult to one's intelligence.
> you need to close some tabs
This comment is really not contributing anything to the matter. Obviously everybody could think of closing tabs without you advising to do so, and if they don't, it may be because they want these tabs around. I regularly keep a lot of tabs around because this is my work pattern.
Personally I wouldn't buy a laptop that is incapable of supporting the amount of ram that I need for my "work pattern".
> Personally I wouldn't buy a laptop that is incapable of supporting the amount of ram that I need for my "work pattern".
Clearly you've got it all figured out. Too bad not everybody can be you, otherwise we wouldn't have any tradeoffs to deal with.
Of course I have tradeoffs to deal with... But yes, I do have it figured out. Thanks.
That's the money quote here. I've been waiting for this for a long time actually. Every browser I've tried except Firefox just basically eats all my RAM and other app performance (e.g. compiling stuff) goes down the toilet.
Then on the other hand FF has not been so snappy and responsive traditionally. So responsive + soft on RAM is the combination I've really been waiting for. Let's hope they can deliver.