Comparing Memory Usage of Firefox 2 vs 3
DaMan writes "ZDNet picks up on yesterday's Firefox 3 beta 1 review by comparing the memory usage of Firefox 2 against the latest beta. The results from one of the tests is quite interesting, after loading 12 pages and waiting 5 minutes, 2 used 103,180KB and 3 used 62,312KB. IE used 89,756KB.""
I'm assuming you loaded the exact same 5 pages with the same ads that the ZDnet testers did?
This guy's the limit!
Also, seems like a pretty crappy test to me, especially considering that most of the complaints with Firefox are with memory leaks, and not memory usage from opening a few pages. What happens after an entire work day of using the browser? Is there a significant difference in memory at that point? People who open their browser and look at 10 pages, then close it again will rarely ever have a problem with memory usage in Firefox. However, those of use who leave it open for days at a time, doing web development, and constantly looking at new pages are the ones who need to worry. It's like comparing the performance Visual Studio 2003 to Visual Studio 2005 on a project that only has 5 classes.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
The Working Set (physical memory) size will drop, but the memory consumption (Private Bytes, Virtual Memory) will be the same. When a window is minimized, Windows mark the memory pages as candidates to be relocated in case of memory shortage. When you restore IE focus the Working Set size will return to the previous size.
Task Manager sucks, use Sysinternals' Process Explorer.
IANAWBD (Web Browser Developer), but... there's just so much data for web pages now. You've got plugged-in interpreted flash code, graphics that need to be kept in RAW formats in memory because of speed, the full length and width of the page on an in-memory surface to pan through on a window.
Even then it still needs a dynamic layout for CSS and scripting on the fly. And even then some scripting is safe, some is not, so there are rules that the code has to implement like pop-up blockers, password managers, warnings on insecure pages, warnings on cross-site scripting, etc. All that and the browsers STILL need to be able to sensibly parse and display completely borked pages with invalid HTML.
Nevermind maintaining history, cache, cookies, referring pages, bookmarks.
More Twoson than Cupertino
Seems like the author is playing up to some feature in FireFox 4 that releases un-viewed pages from memory after a certain amount of time.
I bet if he re-clicked on each of the 12 tabs after the 5 minutes was up, that memory usages would go back up again.
"using less memory" isnt always desirable. I have 4 GB of RAM in my system and i'd rather if the applications USED THAT RAM, to keep application response "instant", rather than un-caching stuff, only to pull it back into memory again when I want to see it.
You can enable extensions not explicitly marked as compatible with Firefox 3 beta by going to about:config and adding an entry for extensions.checkCompatibility : false. I'm running the same extensions and usage pattern as with Firefox 2 and performance is MUCH improved, especially AJAX performance on Gmail and shutdown/session recover speed. Of course, it has only been one day since my last FF restart. FWIW, I'm running about 8 extensions and have about 50 tabs open across 5 windows; currently on my 2GB machine Task Manager shows Firefox 3 using 235MB, where in the past Firefox 2 would easily consume ~450MB or even 600MB+ under similar workload. (Of course in the past I only checked Task Manager once FF's performance became noticeably slow, so this is not necessarily a good comparison.)
Another point regarding your IE7 and Opera9 tests: as far as I know, all modern browsers choose to allocate more or less memory depending on how much memory the OS reports as available (certainly Firefox does), so users on different boxes can show very different results.
Because mostly on Windows, most people's RAM is stretched to the limit, if a simple program that people use every day (Firefox) will decrease memory usage, then they can focus on speed and in the end, if Firefox can be 2X as fast as IE, Konqueror(and by extension Safari), and Opera people will switch to it. And I actually have around 512 MB on both my Laptop and Desktop with the Desktop currently running Xubuntu and my laptop running Ubuntu 7.10 happily. And when Linux can resurrect a "dead" system like a crashed Windows system that someone may give you for like $10 that happens to have 256 MB of RAM on it and a slower but usable processor like a Pentium III, Linux can run fine on it however, if FF runs slowly, most people have little need for a computer if they can't browse the web with it.
There is no "disagree" moderation, and troll, flamebait and overrated are not valid substitutes
I used to browse the web on a machine with 8 MB of RAM. Total, including the OS. At the time, real time decoding of a JPEG was extremely difficult, but my current CPU has 100 times the clock speed and is 64 bit and has vector processing features. Yet, browsers still seem to make the same class of CPU-memory tradeoffs that made sense on a 68030. For example, I may have ten tabs open in a window. I can only see one of them at any given moment, but the fully decoded images are all sitting in memory for all ten web pages, despite the fact that the page could be re-rendered almost instantly on a modern system.
Since browsing a few web pages is seldom the only thing I do with my computer, I go and do other stuff in Lightwave, Blender, Photoshop, whatever, then I come back to my web browser, and I wait while the whole working set gets swapped back in. Then, I click on the tab I want, and I wait while the working set for that tab gets swapped back in. If it just rerendered the page from the original bits, rather than using cached decoded images sucking up RAM and whatnot, it'd have almost nothing to reload and worst case performance would be orders of magnitude better. Hooray for "optimisation!"
Oh, and can we get some ninjas to fucking kill Flash. Seriously, I shouldn't need a bunch of script blocking and flash blocking extensions just to be able to browse the fucking intarwebs without having a seizure.
I don't see that memory usage remains a problem for most users. It's just the vocal few who are having memory problems. The main problem is that these users assume this is part of the "normal" experience of using Firefox, so they complain that every user must also be seeing the same thing. They take no steps to fix or report their problems, as they consider the problem to be "well-known" and think developers must be idiots for not being able to see it.
If you're still having serious problems with Firefox, try creating a new profile and installing the Firefox 3 Beta. If you still have problems, discuss them on the MozillaZine Builds forum. If the problems do not get resolved, just switch to another browser. It's not normal to experience serious problems when browsing, so I don't see why anyone accepts it as part of the "normal" experience.
I agree that the damage to Firefox's reputation is already done. I've found that no matter how many reports come out that Firefox doesn't have a severe and obvious memory problem, the few reports that show a problem are the ones that become popular. If any of them just included instructions to reproduce the problem on other computers, those reports would be productive. Somehow, they always seem to leave that part out.
What a fool believes, he sees, no wise man has the power to reason away.
Yes, but it's equally inefficient for Firefox to have to swap this sort of thing in and out when the OS is under memory pressure.
What we really need is a mechanism for e.g. Firefox to use large amounts of memory to speed up page loading when there's plenty of memory, but to optimize for a small memory footprint when I've got ten zillion Gimp windows and Picasa open.
Why should Firefox behave in exactly the same way in two totally different situations?
That's a bogus argument. Virtual size is absolutely unimportant as far as the performance is concerned. You have a fixed amount of memory in the system and if Firefox takes up a lot of real memory, other parts of the system will feel the pain. The fact that the *real* memory usage of FF 3.0 is low means that it is not being greedy about using system resources. Every process has the full VM size to play with, so looking at the VM size doesn't really tell you much about what effect that process will have on the rest of the system.