解决Firefox的无节制内存占用的问题

2010-08-28 10:51:53来源:西部e网作者:

  如果你使用过Firefox(中文名称:火狐),那么你对它的第一印象肯定是浏览速度非常快!因为它默认使用“先下载网页文字结构,然后再下载图片”的浏览方式,而IE则采用“网页文字和图片同时下载”的浏览方式。不过当你把常用的插件(也称“扩展”)都安装上之后,你对Firefox的印象可能就会逐渐改观,原本轻巧的狐狸一下子变成了一只“饮食无节制”的肥狐!当你打开“Windows任务管理器”之后竟然发现它已经“吃”掉了300多MB内存……

  狐狸为什么永远喂不饱?

  原本资源占用极小的Firefox何以成为了内存占用的元凶呢?原来是恐怖的“内存泄露”!很多人都知道,在编写程序时,要为即将使用的数据分配一块内存区域,然后将数据写入这块内存中,在不需要这些数据时,就把划分出去的内存区域给回收进“可分配内存”中,但有时因为程序编写的疏忽或者编译器本身的错误(程序编写疏忽就相当于生产产品前设计图就有问题,而编译器本身的错误则相当于正确的设计图在有故障的机器上生产出了不合格的产品),导致划分出去的内存区域没有被收回来,于是即便只是很小的“内存泄露”到最后也会造成系统资源的完全耗尽!由于Firefox在安装各种插件程序前并没有出现这么严重的内存占用,所以我们判断:Firefox的内存泄露问题可能是插件造成的!在Mozilla官方和Firefox的技术论坛中,终于找到了所有会导致Firefox过度内存占用的原因。

  消灭致病的五大“病原体”

  头号病原体:Adblock插件

  致病原因:用惯了Maxthon的用户肯定会安装广告拦截插件,但是使用最广泛的广告拦截插件Adblock在Firefox 1.5版本中存在严重的内存泄露问题。

  治疗方案:卸载Adblock,安装Adblock Plus并升级到最新版本。选择菜单“工具→扩展”,在弹出的“扩展”窗口中选择“Adblock 0.52.056”(版本号可能略有不同),点击“卸载”(见图1),完成后关闭Firefox再重新打开。
  Adblock Plus链接:https://addons.mozilla.org/extensions/moreinfo.php?id=1865&application=firefox


  二号病原体:Java

  致病原因:旧版本的Java运行库导致Firefox内存占用严重。

  治疗方案:Java用户请升级到Java Runtime Environment 1.5.0_06(或以上),另外在Java控制面板中关闭“Java控制台”也可以降低内存占用。


  三号病原体:Adobe Reader

  致病原因:旧版本的Adobe Reader占用了过多内存。

  治疗方案:Adobe Reader 6.0/7.0都会占用大量内存,请升级到 Adobe Reader 7.0.5,如果在Firefox中禁用Adobe Reader插件也可以降低内存占用,但建议保留(否则每次都要下载才能看PDF文件实在不方便)。


  四号病原体:固定大小的缓存

  致病原因:Firefox默认划分出一块内存区域用于网页缓存。

  治疗方案:默认状态下Firefox的缓存大小不是固定不变的,设置缓存占用的大小可以降低内存消耗,设置步骤如下:
  在Firefox网页地址栏中打开“about:config”(不含引号)即进入Firefox高级设置状态(见图2),在高级设置列表中将“browser.cache.memory.capacity”在这里根据自己的情况设置缓存大小(双击进入编辑状态),小内存的用户可以考虑将“browser.cache.memory.enable”设置为False来完全禁用内存中的网页缓存,但这样会降低Firefox的速度。


  五号病原体:快进快退

  致病原因:快进快退为了保证速度而使用了一定的内存空间。

  治疗方案:进入“about:config”的高级设置,将“browser.sessionhistory.max_total_viewers”设置为0。

  小提示

  我们还能对Firefox进一步优化来获得更小的内存占用,比如在高级设置中将“config.trim_on_minimize”设置为true能使Firefox在最小化时释放内存,安装NoScript插件禁用JavaScript可以节省脚本运行占用等。

关键词:Firefox

赞助商链接: