Slashdot Mirror


Real-World Firefox 3 Memory Usage Leads the Field

An anonymous reader writes "The author developed a program to snapshot memory usage per process every 3 seconds on Windows. Using this he recorded 3 hours of memory usage for five different browsers under real-world usage scenarios: Safari 3.1, Firefox 3, Flock 1.2 (a browser based on Firefox 2), Opera 9.5, and Internet Explorer 8. A million data points indicate that Firefox 3 has a surprising advantage over the other browsers tested. These are real-world tests and not contrived benchmarks."

35 of 406 comments (clear)

  1. Wonder what Firefox 2 looked like ... by xmas2003 · · Score: 5, Interesting

    Interesting test - pretty amazing how FF3 basically flatlines at around 120 MBytes for over 2 hours of usage ... would have been interesting if the same methodology could be used with FF2 to see how much of an improvement FF3 is over that and how well the leaks were fixed.

    --
    Hulk SMASH Celiac Disease
    1. Re:Wonder what Firefox 2 looked like ... by Bandman · · Score: 5, Funny

      Cue Iraqi spokesman

      There are no memory leaks. All memory usage is as we intend it to be. Any reports of leaks are lies by people who do not understand our page caching system. The infidels will never take Baghdad.

    2. Re:Wonder what Firefox 2 looked like ... by Mascot · · Score: 4, Informative

      The article states FF3 is an improvement over FF2, without offering data points for FF2. However, it also mentions Flock is based on FF2, so I'm guessing they've assumed the Flock data is representative for FF2.

    3. Re:Wonder what Firefox 2 looked like ... by reg · · Score: 4, Interesting

      That won't do those without 120 MB of memory to spare much good. Setting a cap on memory usage isn't a good solution, IMHO -- using well-designed memory handling that proactively frees memory seems to me to be a far better solution than a cap and garbage collection model.

      (-1, Uninformed)

      Firefox has no global cap on memory. It will dynamically configure it's caches (to some extent) based on the available RAM. It would be a stupid design to leave lots of RAM free, and reload stuff over the net. It also proactively frees memory, in most cases, although it sometimes delays a little, because it knows that you might turn around and reuse all of that memory you just stopped using. The GC is just for JavaScript (required by design) and for DOM nodes which end up being circularly referenced (which is unavoidable).

      Finally, 120MB is not a lot of RAM. Notice that the other browsers are using similar amounts of RAM.

      Regards
      -Jeremy

    4. Re:Wonder what Firefox 2 looked like ... by neokushan · · Score: 5, Interesting

      Perhaps in days gone by it would have been shocking for browsers to use so much memory, but the memory being used is directly related to the content on the sites it browse.
      We recently seen studies indicating that the average website has tripled in size in the last couple of years alone, imagine how much bigger websites have got in the last 10-15 years?
      More images, higher resolution/dpi ones at that, flash, plus there's all the scripting engines and other plugins that have accumulated as well.
      While I comlpetely agree that software bloat shouldn't be accepted (Nero, I'm looking at you) and if anything, programs should become MORE efficient with age (in an ideal world), I think browsers could be one exception since the content they're handling has got so much bigger.
      So really, the best way to indicate progress here is to pit the fully featured browsers against each other and see who comes out on top. Probably still wont be firefox, but I bet the big three still use a lot of RAM compared to what was the norm a few years ago.

      --
      +1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
  2. What time of day did he do his tests? by Anonymous Coward · · Score: 5, Funny

    I find that for certain hours of the day (namely in the evening) My memory usage skyrockets. It probably has to do with the increased number of images I am loading :D

  3. But what memory metric was taken? by Anonymous Coward · · Score: 5, Interesting

    IIRC the memory displayed in process manager isn't necessarily the memory requested/used by the program, but merely what Windows has allocated, partially based on the applications requirements and partially based on what Windows _thinks_ the program needs.

    As such there's room for applications to look like they're using more memory than they are which can lead to misleading stats. If this test has only taken into account the memory windows has allocated it doesn't necessarily act as a measure of how efficient the program is at least, just how good it is at playing Window's memory management system.

    1. Re:But what memory metric was taken? by Evanisincontrol · · Score: 4, Interesting

      Ok, I see your point. Let's pretend Browser X is using dirty tricks with Windows's memory management system to shrink down how much memory is allocated to it. Browser Y is not doing that and appears to be less efficient.

      Well and good, but it's irrelevant. The remains that Browser X is taking less memory from Windows's pool of resources. It doesn't matter how Browser X is doing it or how efficient Browser X being with the memory internally, it is a solid truth that Browser X is using occupying fewer system resources than Browser Y.

      It's really a moot point, because it's unlikely that the developers of Browser X knew any "cheats" that would let them use substantially less memory than every other browser out there.

  4. HTTP 503'd (aka /.ed) by scatters · · Score: 5, Funny

    Service Not Available.

    At the time of posting this, there were like, 10 comments in the thread. Assuming that only 10% of all /.ers RTFA, that means that the site can support only 1 simultaneous user.

    --
    A One that isn't cold, is scarcely a One at all.
  5. Bah. by Anonymous Coward · · Score: 5, Funny

    If they didn't compare with Dillo/lynx, it's meaningless. Also, already slashdotted.

  6. Terrible reference by toleraen · · Score: 5, Insightful

    Between:

    These aren't stress tests, and I probably never went over 4 windows in each browser, with at most 3 tabs in each window.(Emphasis mine)
    and
    .the individual numbers should not be compared to each other...

    ...how is this supposed to be taken seriously? "Contrived benchmarks" at least provide consistent and reliable results. They may not provide a completely accurate picture of real world browsing, but it's a hell of a lot better than this anecdotal "test".

    1. Re:Terrible reference by CyberLife · · Score: 4, Insightful

      This was my first question too. Real-world testing is all well and good, but how controlled was it? What assurances do we have that his results really paint the picture he claims and not something else?

      Note: The site is down so I haven't read the article yet. I'm guessing it fails to address this concern?

  7. Wait by Mensa+Babe · · Score: 4, Informative

    Don't get overexcited just yet. Let me quote some of the most important parts of the article that were completely overlooked in the summary for some reason:

    "These results are from opening Memory Watcher and then using the browser between 9,000 and 11,000 seconds (close to 3 hours). Each browser is tested in a separate session, and there are brief periods of inactivity throughout the time period. [...] The above profiles are not a direct comparison in any way, but they offer a visualization of trending in the memory behavior of the layout engines and interfaces. [...]These aren't stress tests, and I probably never went over 4 windows in each browser, with at most 3 tabs in each window. [...] An automation script will never give the same insight into performance over time as will this sort of profile." [emphasis added]

    In other words, it is evident that there was no guarantee whatsoever that every browser would display exactly the same sequence of web pages. It is easy to jump to conclusions that if Firefox has used the least memory then it must "[have] a surprising advantage over the other browsers." But is it a logical course of reasoning? Or only a post hoc ergo propter hoc fallacy combined with wishful thinking? The truth is that the amount of memory used during an hour of downloading web pages is strongly correlated with the speed of downloading and displaying said web pages. Is it the case that Firefox couldn't download, format and display pages as quickly as Internet Explorer because of the native Windows internal API hooks that help Explorer work faster than any independent browser could possible aspire to? That is quite possible. Unfortunately the results of that experiment are inconclusive and the methodology was unreliable.

    --
    Karma: Positive (probably because of superiour intellect)
  8. If slashdotted by Anonymous Coward · · Score: 5, Informative

    Final memory usage in MB
    Safari 636.9
    Firefox 3 111.8
    Flock (Firefox 2) 191.9
    Opera 9.5 190.6
    Internet Explorer 194.4

    1. Re:If slashdotted by Koiu+Lpoi · · Score: 4, Interesting

      Ffffffuck, is that a typo on Safari? That's stupendously huge! Is that because they have to load up some kind of ridiculous layer to make this mac-alike app run on windows? I know that iTunes uses a ton of ram too, but not six hundred megs huge.

  9. How did they measure memory consumption? by Idaho · · Score: 5, Insightful

    As the server is (already!?) down, I didn't yet have a chance to RTFA. So perhaps it is in the article somewhere, but I couldn't help wondering: how did they actually measure memory usage?

    I'm asking because, these days, that pretty much amounts to rocket science.

    Different operating systems report memory usage differently, even between different versions of the same OS (yes, I'm looking at you, Vista vs. XP). If they used "top" or its equivalent, it matters a lot whether they looked at real usage, virtual memory size (can be huge but that doesn't say anything) or what-have-you. Some OS's cheat quite a bit in what memory is reported as being "free" or "available", as well. Then we get to questions like "does it include the size of shared libraries", if not, is that fair if the libraries are really only used by that one application? Etc. etc.

    So I'm not saying memory using doesn't matter (it very much does), it's just hard to measure it exactly. And, any attempts at doing so, should be documented precisely.

    --
    Every expression is true, for a given value of 'true'
    1. Re:How did they measure memory consumption? by Tweenk · · Score: 4, Informative

      The OS was Vista, and the program was written in .Net to use the function PrivateMemorySize64. MSDN says it returns "the amount of memory which cannot be shared with other processes". It also says it's the same as the "Private Bytes" value in taskmon. Probably it means that it's the amount of memory the process received from mallocs (or rather GlobalAllocs/LocalAllocs/HeapAllocs), and which can't be assigned to some other process.

      It's worth noticing that the guy bothered with a GUI and an interactive filtering option for such a simple program. I wonder whether he ever heard of CLI, because it looks like a perfect fit for this kind of program.

      By the way, why not post CoralCDN links (append .nyud.net to hostname) instead of direct links when the site in question is small and likely to be Slashdotted?

      --
      Those who would give up liberty to obtain working drivers, deserve neither liberty nor working drivers.
  10. Great news FF - though Opera is speedy by SgtAaron · · Score: 4, Interesting

    I've been blessed with using a Duron 950Mhz with a gig of RAM, lately. Quite speedy. Heh. But I've used worse, as many can no doubt also say. Oh, and an GeForce4, and of course the X Window System. :-)

    I've always used Firefox, and Netscape before that, on my linux desktops. I must say that I tried Opera lately, for the first time, and found its rendering to be very spry. The difference was most noticable for me when loading very large web pages, or very detailed with lots of tables and such. The latter was our nagios service detail page, which the rendering in Opera was quite noticeable in its quickness.

    So I get to be torn now, maybe, speed vs lean...
    I do like speed. Opera's memory use doesn't seem to be so excessively bad as to negate the optimizations they seem to have coded into the rendering.

    Aaron

  11. Memory?...what about speed? by Last_Available_Usern · · Score: 5, Insightful

    While it's admirable that it's the leanest of the bunch, if I have 2GB of memory and over half of that is unused at the moment, do I really care if my browser uses 25MB instead of 40MB? I would think the speed with which the browser (and subsequent windows) opened, as well as how quickly it loaded plug-ins and other embedded media, would be of more importance.

    1. Re:Memory?...what about speed? by AbRASiON · · Score: 4, Interesting

      I couldn't agree more, I want an incredibly incredibly snappy browser, I don't care how much resources it requires.

      I have a theory and I'm convinced of this theory that cache in browsers simply has been broken, since the beggining
      I've used netscape, ie, ffox, netcaptor and god knows what else and no matter how big I set the cache or how regularly I hit sites, they still seem slow to load images and content.

      Perhaps it's the complexity of the pages has scaled up, I spose that is possible.
      I've gone from browsing on a Pentium 166mmx with 32mb over the years up to a quad core 3.2ghz machine with 4gb of ram and moved from 128k dsl / 512k dsl / 1.5mbit dsl / 8mbit dsl and 18mbit dsl.

      I am impatient, make no mistake but surely if we're just throwing images and text around, these damned things should be snappier?
      FFox 3 is definitely a move in the right direction, it's noticably faster than FFox 2 but I still find moving back / forward, clicking links and interaction in general should still be faster :/

  12. Re:Careful... by Paul+Neubauer · · Score: 4, Insightful

    Not really. Many Opera users are finding 9.50 to not be as good as claimed or hoped and finding it to be a memory hog. I am not alone in looking at 9.50, finding the the 9.51 snapshot to be less buggy, and sticking with 9.27 for normal non-browser testing browsing.

    Now, maybe when Opera 9.52 or so is out, there might be some valid concern.

    --
    I don't subscribe to RMS's GNUtopian vision.
  13. This doesn't mesh with my experience by Curien · · Score: 4, Informative

    My wife and I share a computer. She uses mostly uses Firefox, I mostly use Opera. This is on a 64-bit Ubuntu Hardy.

    I have noticed no difference in her memory usage since we upgraded to FF3. I used to regularly have to kill her browser every once in a while (maybe once or twice a week) because it was eating up all the RAM. Since we upgraded to FF3, I can see no difference in memory usage.

    For example, right now FF is using 300MB resident, Opera is using 100MB. Flashblock is installed on both browsers. Granted, that's not a terribly good test considering we've been browsing to different sites, but I've found that those numbers are fairly stable. FF usually levels off in the 300-500MB range, and Opera in the 100-150 range.

    YMMV.

    --
    It's always a long day... 86400 doesn't fit into a short.
    1. Re:This doesn't mesh with my experience by diegocgteleline.es · · Score: 4, Informative

      64-bit firefox eats a LOT more of memory. The windows versions are 32-bit only.

  14. Re:you do know what "contrived" means right? by toleraen · · Score: 4, Informative

    Tests need to be repeatable, and when they are repeated they need to provide consistent results. If you can't provide consistent results on each subsequent test, you need to provide solid rational on why the results were outside your margin of error. Saying "Oh, I might have had one or two youtube videos up at the time" is not solid rational.

    Scripts that visit the exact same pages, for the exact same time, do the exact same things across all browsers provide consistent, quantifiable results. Since everyone's browsing behavior is different no script will ever provide "accurate" results for real world usage. But then again, those scripts could be closer to my real world usage than this guys anecdotal test. Get it?

  15. Re:Yah, but how reliable? by rrkap · · Score: 4, Informative

    I haven't had Firefox 3 crash for me yet (although I've only been using it since Download Day). I have noticed that it no longer gets hung up processing javascript the way Firefox 2 often did.

    --
    I like my beverages with warning labels!
  16. Re:Yah, but how reliable? by Tweenk · · Score: 5, Insightful

    This is most likely related to the Flash plugin. The second suspect would be the Java plugin. For me Firefox never crashed on a website without Flash and Java, but I had a few crashes due to Flash bugs.

    --
    Those who would give up liberty to obtain working drivers, deserve neither liberty nor working drivers.
  17. Re:Lools IIS can't hold its own by Zero__Kelvin · · Score: 4, Funny

    "The term "slashdotted" has become ubiquitous with smashing a webserver due to high traffic.
    Most webservers are *nix based (though admittedly IIS is gaining ground)."
    So what you are trying to say is that Slashdotting is becoming more and more popular?
    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  18. Definitely important by XanC · · Score: 4, Informative

    In the case of Firefox, memory usage has ranged from 25MB to $MEMORY_AVAILABLE. Which sucks no matter how much you have.

  19. What cap? by clarkn0va · · Score: 4, Informative

    Setting a cap on memory usage isn't a good solution, IMHO -- using well-designed memory handling that proactively frees memory seems to me to be a far better solution than a cap and garbage collection model. I haven't seen any mention of a cap, even if that's a natural conclusion based on the flat line that one can observe in the graphs.

    If you check this fairly lengthy explanation of how memory usage was improved in FF3 you'll see that it is mostly attributed to reduced fragmentation and leaks, and smarting caching, just as you are advocating.

    db

    --
    I am literally 3000 tokens away from the chaotic crossbow --Stephen
  20. Re:...contrived benchmarks. by billcopc · · Score: 5, Funny

    <keynote style="Steve">
    Safari on OS XI is going to be 400% faster. It's going to look 700% rounder, and integrate seamlessly with your ego. It will make you 1500% more smug, no matter how smug you were before.

    Firefox ? Not smug.
    IE8 ? *chuckles* next slide.
    Opera ? They still have square corners, what does that tell you about their priorities ?

    It's so awesome we had to give it a new name: Snow Safari.
    (*applause*)
    </keynote>

    --
    -Billco, Fnarg.com
  21. Re:Careful... by Ilgaz · · Score: 4, Funny

    ' They're trying to charge money ofr something everyone else gives away for free, and with the latest browsers they're running out of legitimate advantages to boast."

    Please change that template, it is 2008 already.

  22. Re:you do know what "contrived" means right? by bunratty · · Score: 4, Informative
    You mean like these consistently reproducible results?

    Firefox 3 used less memory than Firefox 2, Internet Explorer, and Opera, and it also freed more memory than the other browsers when pages were closed... The results of this experiment, which others have been able to consistently reproduce using the same tools, represent a big victory for Firefox, which has previously faced widespread criticism for its high memory consumption.
    --
    What a fool believes, he sees, no wise man has the power to reason away.
  23. Except on Linux by DrYak · · Score: 5, Informative

    It would be a stupid design to leave lots of RAM free, and reload stuff over the net. Well, it depends on your OS.
    Linux automatically uses all free memory for disk cache, and is very efficient at it. Instead of hogging memory that could be used by other process, Firefox could exclusively rely on a disk cache and rely on Linux' native and performant disk-cache to handle the in-memory caching of those files.
    The best part of this is, if some other process needs the memory, Linux will simply free some memory from the cache, but the files will still be ready on the disk and the over application will still be performing well. Whereas if a 120Meg space is enforced a in-RAM cache, when memory becomes scarce, the system is at risk of paging out piece of the software (pages of code itself instead of pages holding cache) and thus make the whole system less responsive.

    The GC is just for JavaScript (required by design) and for DOM nodes which end up being circularly referenced (which is unavoidable). You would only need to keep the DOM nodes of the current page. Past pages are freed and don't (usually) keep DOM objects alive.

    Finally, 120MB is not a lot of RAM. Well, it depends. Notice that Linux is also very often used on kiosk with limited features and on old hardware which may not have huge amounts of resources.

    Being able to run within a small memory space is critical for linux. Otherways, there won't be any difference with Vista.

    Also a lot of problems are comming from bad Add-ons or even half-assed Browser Plugins. Flash is such a pain in the ass that can momentanily freeze the whole browser session.

    Disclaimer : I run Firefox on Linux with in-memory cache disabled and using Gnash plugins instead of Flash (runs in separate process and can have autostart disabled). Adblock+ and Noscript also help avoiding that my browser loads tons of useless shit. And until recently my main desktop was a Pentium-III with 440BX chipset (a machine on which 1GiB of RAM is a rare occurence), but I didn't get any major problem even on recent distros. (Vista on the other hand had to wait)

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Except on Linux by packman · · Score: 4, Interesting

      I can't say that what you're saying is very 'informative', sorry. While linux indeed uses free memory to cache files, browsers do not cache 'files' in memory, they cache fully preprocessed DOM-trees and pre-rendered parts of webpages. Disabling in-memory caching only hurts performance there, forcing the browser to reprocess and revalidate all your pages. The only reason your browser uses the disk is because it's faster than your network connection and saves speed between browser-sessions or when visiting a page which has been cleaned up from your browser's own memory cache. Disk I/O - even with loads of OS-level caching will always be slower than letting the application just keep stuff in memory.

      Most of your browser's in-memory cache is pre-processed data, including the last X entries accessible with your back-button - and that for each tab - are cached. This means images, DOM-tree, CSS-styles and sometimes even pre-rendered parts of the page.

      I really hope you don't believe the disk io is the limit here. Parsing, validating and rendering takes up a good part of the responsiveness - even on modern PC's with fast quad-core cpu's. It's not only the CPU's that are advancing in speed, also webstandards require more & more processing power.

      Also with todays machines with 1GB+ RAM - I don't really see the problem of memory useage. I have 4GB at home - and the moment my linux uses even only 25% of that for disk caching, it will have very old stuff in that disk-cache of which a lot would probably never be used again. I'd rather have my browser use 2Gb and feel extremely snappy, than have it use less memory just to preserve memory.

  24. Re:Irrelevant... by Grey+Ninja · · Score: 4, Informative

    That sounds like all your rendering is being done on the CPU to me. Windows will do the same thing if you refuse to use Nvidia's binary only Windows driver.

    That being said, I have similar problems on my laptop, where scrolling a window often will peg my CPU. In my case, I have an older Intel integrated chip, which does a lot of 3D rendering on the CPU. Since the advent of AIGLX, it makes some rendering on my laptop fairly slow. At least, I THINK that's what's going on there. It's never really bothered me enough to look into it in-depth.