Firefox 的内存泄漏问题搞得人心惶惶,Jesse Ruderman 的说法似乎平息了一点怨气,但从我这几天用 nightly build 的结果来看,情况并没有什么好转,看来我们只能把问题归咎于扩展上了。
我现在用的 trunk 版本只启用了这么几个扩展:FlashGot, SwitchProxy Tool, IETab, NoScript, TabMix Plus, AdBlock Plus,几乎是 Firefox 的 addons 网站 上最受好评,也使使用者最多的几个,去年这个时候我写 Reflections on Firefox,过了一年时间,Firefox 方便浏览的功能没有一点改进,我们还是得依靠扩展。可是“They found that Session saver, NoScript, IE Tab, and the combination of FlashGot and Filterset.G Updater cause leaks.”——它们又是导致内存泄漏的元凶,真让人有点进退不得的感觉。
有人总喜欢拿“内存就是拿来用的”这句话来搪塞,我的看法是,这话没错,可是写程序却不是为了制造 bug 的,相信没人愿意明知这个 bug 在那里却不去修改:同样的,明知道可以早一点释放内存,却因为疏忽而没有释放,现在这个 bug 给别人发现了,却用这句话来做挡箭牌,未免无耻了一点,没错,内存是拿来用的,可难道你 Firefox 就天经地义的该占了 300M 的内存,留给其他所有程序用 200M?
再者,我在 about:config 里设置的上限可是 64M…倒真的很奇怪一个连自己最多用多少内存都不能控制的软件居然可以发布。
诚然,David Baron 在 The danger of extensions 中的忧虑是有道理的,Mozilla 本身的源代码管理已经足够混乱,给扩展开发者提供的环境也有够恶劣——连 minor version 的变化都经常使许多 extension 失效,对扩展的代码缺乏监控……如果说去年还是一片大好光景下大家有少许怀疑的话,到现在,扩展,或者说整个 Mozilla 开源社区管理混乱带来的种种问题,已经越来越趋进酿成灾难性的后果了。
是否我们接受开源的优越性的同时,必然接受这样的责罚呢?
http://mywebpages.comcast.net/SupportCD/FirefoxMyths.html