There are lots of complains on the net about “memory leak” for Firefox 1.5+, and all solutions now point at setting browser.sessionhistory.max_total_viewers in about:config.
This pref defines how many pages is cached per tab. As I don’t use the browser back and forth feature very much, I set it to 0 to disable it. Note this won’t disable the back and forth feature, just disable the cache, so I can still back to my previous page, the only drawback is that I’ll wait for the page to be loaded again, not a problem for me though, and the memory saved is a BIG gain.
Another similar setting is browser.sessionhistory.max_entries. I didn’t find explainings on this pref, just something from some blog. It looks like it defines how many URLs is saved in the session history (how many “level” I can go back). The default 50 is way too much. And I set it to 15.
Now my Firefox takes less than 100M with 20+ extensions, pretty good