I doubt that the patch helps in this particular case as all images are present in the DOM, so Firefox will merrily load all of the images, independent of whether they are visible or not. This has been a longstanding architectural problem.
Firebug is most likely the culprit [1]. Firefox 15 will have a general fix for the kind of memory leaks such as the one caused by Firebug (affectionately called "Hueyfix" after its inventor Kyle Huey by some) [2].
This is probably why so many features from Mozilla end up in other browsers:
-Notification bar in pretty much all browsers.
-Doorhanger panels
-Download pane which Safari managed to release first (unfortunately a common pattern)
-HTML5 video which Mozilla implemented first
-Do not track
-AwesomeBar which now all other browsers emulate with different degrees of success.
-Firebug which set the standard for web development tools.
And so on, and so on. The other browsers also contribute great innovations to the browser space and this is a great situation for the end user, but I don't really like how Mozilla is kept getting downplayed.
I worked on the Mozilla HTML video implementation. Opera came up with the original proposal and presented a first experimental implementation. We started implementing this to be compatible.
Apple then presented their much more complicated proposal which was integrated with the Opera one and became HTML 5 video, along with feedback from other implementers, including Mozilla.
So it's a bit more complicated than "Mozilla implemented first".
Mea culpa, I didn't want to steal the thunder from the great guys at Opera. From my end user perspective I only remember Opera supporting the <video> tag in a version which was released almost a year after Firefox 3.5 [1].
Agreed that Firefox gets less credit than it deserves.
But Google realized with Chrome that the biggest part of the browsing experience is not the browser chrome or features, but speed. The single greatest user experience enhancement is responsiveness.
Anecdotally, there was a year or two where Chrome (and Safari, by extension) were lightening-quick. Firefox felt like it was crawling, by comparison, and gave up a good chunk of its market share. I've heard Firefox is snappy again, though I haven't seriously used it myself, but the damage is done.
I've heard Firefox is snappy again, though I haven't seriously used it myself, but the damage is done.
Firefox still doesn't isolate separate web pages in different tabs from each other and the main browser UI. If you open a group of tabs and one of the pages is slow to load, or later you have an AJAX request going on in some tab that takes a long time to get a response, your whole browser UI will often go into a trance.
In fairness, they are working to improve this, but Firefox is several years behind the curve in this area. Until this is fixed, it really hurts any benefits from otherwise useful features like having tabs and bookmark folders in the first place.
I know I start sounding like a broken record for those who read my comments regularly in these kind of threads, but I always feel inclined to point out that Chrome's much-lauded architecture has clear limitations once you start to push it too hard. I'm certainly not a typical user as I exhibit heavy tab usage. And I've used Chrome for weeks at times as my primary browser so I've come to know its advantages and disadvantages. Web pages may be given their own processes but they are not completely isolated from the browser process (containing the UI) since they have to communicate in order for the user to have something to see and interact with. And there are bottle-necks in the browser process. With too many open, active tabs the interface starts to stall badly. And the memory usage goes through the roof which causes the OS to swap pages from other applications out of memory which really hampers performance of the entire system. Chrome is optimized for the common case (very few tabs) but it doesn't scale well (i.e. at all) beyond this.
Whatever Mozilla will do to lessen the impact of content on the interface, I hope that they won't go down the same disastrous path as Chrome and make the browser unusable for any use other than the browser is optimized for. Right now I can have ~100 tabs open with Firefox thanks to excellent memory usage (including suspending tabs) and an interfaces which scales well (Panorama, switch to tab, tab overflow, etc.)
But I can see why Chrome is so attractive for many users. If you stay within its comfort zone the responsiveness is extremely pleasant in day-to-day usage.
Just to be clear, I didn't say anything about Chrome in my GP post. In fact, basically every other browser is much better than Firefox in this respect, and has been for a long time now.
I do take your point about using tabs heavily and the limitations of some other browsers. I too will often use many tabs if I'm researching something or just browsing social news/comment sites like HN.
On the other hand, I typically load a tab group of about half a dozen such news sites a couple of times a day, and Firefox goes into a trance for quite a while every time until those pages have all finished doing their thing, so it's not exactly performing well with even a few tabs either.
I'm on the release update channel on most of my systems, so primarily using Firefox 13 right now, but this has been a problem since forever.
As for the rest, I'm sorry but I'm rather unforgiving of the extension buck-passing dance these days. It may well be that this particular problem is caused by an extension, and no doubt if I went through the usual production of disabling things one by one, running safe mode, messing around with config pages and all that jazz, I could probably pin it down. But the bottom line is that it should not be possible for any extension to cause severe performance, reliability or security problems. If that can happen at all, then Firefox is demonstrably broken on an architectural level, and it really is as simple as that.
(Lest you think I'm being flippant: one of my many hats is "professional web guy", so I do have a whole bunch of test systems and I do use use every major browser regularly. I don't tend to criticise browsers on technical grounds unless I have either a reproducible bug or a repeated pattern of poor behaviour across multiple systems and an extended period of time. This is the latter.)
The Firefox extension system is extremely powerful, i.e. extensions operate at the essentially the same level as the original browser code, which allows for really useful extensions which can only work effectively at that level. Obviously this means that code in extensions can "break" Firefox just as much as code in the browser proper.
Configurability like this is always a trade-off between power/efficiency and safety/reliability: if you want to allow others to fundamentally extend your product so that the extension is efficient/fast, you're going to need to give them deep access. Firefox has chosen to be more to this side of the spectrum, Chrome/Opera/IE have chosen to be more towards the other.
So the extension "buck-passing" is valid: you should be complaining to the extension author who has a memory leak, or who is running an infinite loop (or whatever). After all, you didn't have to install it.
(That said, Mozilla has recently been putting significant amounts of effort into making it harder for extensions to be "bad".)
I do understand the choice Mozilla had to make between control/sandboxing and power/flexibility. I just think that, with the infinite wisdom of hindsight and a view from the cheap seats, it was the wrong choice, and now they're paying the price.
It is unfair to blame Mozilla for the resulting problems, just as it's unfair to blame Microsoft because someone wrote a virus that infects Windows machines. Unfortunately, as in that other case, the value of the platform would be extremely limited without the extra functionality built on top. Put another way, I don't have to install the few extensions I use, but Firefox would not be worth using anyway if I didn't have them. The bottom line is that the platform is part of what you experience as a user and the platform's weaknesses can undermine everything running on it.
That all said, it is also fair to say that Firefox has had its share of performance and reliability problems without any help from extensions, and the architectural limitations in terms of tabbed browsing are well known. It may be that the poor behaviour I've observed recently has been caused by extensions, but it may not. To be blunt, it's not realistic for the Firefox developers to expect your average end user to go through an extensive process of systematically testing their combination of extensions and all the other fun and games every time the performance drops. Most people simply aren't going to do that, and they're going to point at Firefox and say "Well, Chrome gets it right" or something instead. It's not fair, but you've got to play by the rules of the game.
The biggest challenge with per-tab processes (Firefox's Electrolysis or e10s feature) is maintaining add-on compatibility. Chrome didn't have add-ons at first and didn't need to worry about backwards compatibility (at the time).
Firefox is also working on per-tab event queues to improve UI responsiveness. In the meantime, I recommend Firefox users check out the experimental "Suspend Background Tabs" add-on. Written by the author of Adblock Plus, Suspend Background Tabs will pause JavaScript execution and timers for background tabs.
On the plus side, you can have hundreds more tabs open in FF than Chrome for the same amount of RAM. And recent versions won't even load tabs you're not using, they act more like bookmarks.
To chrome/chromium's credit, these are the browsers that promoted a less clutered menu (orange firefox toolbar was introduced two years later).
I don't remember which vendor introduced the one-click star button to bookmark pages but it's a good idea too.
I also remember that the ie7 rss/atom summary page is still more elegant than mozilla.
I am sad no other mozilla software is enjoying the same success as firefox. All the "lab" experiments are in one way or another incorporated into the browsers but they never get established as perenial applications (it might not be the objective though). I still believe there is room for a easier-to-use xul application toolkit and a better "communication" hub aka thunderbird.
Unfortunately one misbehaving extension is enough to break Firefox' memory usage. I ran a fresh profile without any extensions for a few days recently and it was a marvel: Firefox kept releasing all memory immediately once I closed tabs.
Unfortunately Google's policy doesn't cause only malicious extensions to be removed from their web store. For instance, All Mangas Reader, a combined reader and management tool for online manga sites, was removed from the store for "copyright infringement", although it's the sites that are hosting the mangas doing the infringement and not the extension. Additionally, the copyright problem does not apply to all jurisdictions where the store is accessible. ChromedBird, a Twitter client extension, was also removed because Google didn't like that it contained the "chrome" string (at least this problem was easily alleviated by changing the name to SilverBird).
As long as it's still possible to install non-webstore extensions I'll learn to live with that restrictions as it's not an activity I perform often in the first place.
FWIW if you switch Firefox to small icon mode, hide the addon bar (previously status bar) and the bookmark bar, then Firefox only has a few vertical pixel less than Chrome for the content area. That's how I use my Firefox at least.
Depending on the site page loading can still badly affect interface responsiveness. There are a number of projects to alleviate this under the umbrella of the Snappy project[1] but for all the work the Mozilla devs have have put into it, Firefox as of now (Fx13) is still nowhere near as smooth as its biggest competitor for regular use cases. I'm hoping that the SuperSnappy research project[2] will produce usable results though.
"I think it's a bit more resource-hungry than Chrome"
Depends on what you measure and your usage patterns. Firefox runs circles around Chrome with regards to memory usage and features like "load tabs on demand" can further lower the general resource usage drastically.
The lack of native UI styling of 'select' elements is a disgrace though, especially on Mac. Firefox is the last browser to exhibit this and there are no sign that this will changed in the near future. :-(