LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1191|回复: 12

让 Firefox 在内存上运行

[复制链接]
发表于 2009-1-25 15:16:32 | 显示全部楼层 |阅读模式
尽管3.0版firefox有很大进步,但对于我这种firefox重度使用者(一般情况下20个以上的标签页),仍然是偏慢。在使用了TualatriX介绍的优化方法后,的确好转了很多。但在标签页间进行切换,仍然是会出现缓慢的现象。于是狠下心来,将主目录下的 .mozilla 目录搬到内存上,发现切换标签页缓慢的现象还真的消失了!使用了一个多月,现在我打开30个以上的标签页也不会再慢下来了,感觉非常好!

下面介绍如何将 Firefox 运行在内存上。注意:下面提到的 /tmp 目录是使用 tmpfs 挂载的,如何使用 tmpfs 可以浏览这篇介绍这里,另外还有一句废话,你要有足够的内存……

首先将用户目录下的 .mozilla 目录备份,放到你喜欢的地方,例如放到 /var/local 下。推荐直接用tar打包,不要压缩,下面会说到好处,而放到 /var/local 下是为了配合下面的脚本。

  1.     cd $HOME && tar -cpf mozilla.tar .mozilla/*
  2.     mv mozilla.tar /var/local
复制代码

在 /tmp 目录下创建一个目录,用于存放 .mozilla 目录下的文件

  1.     mkdir /tmp/.mozilla
复制代码

然后将用户目录下的 .mozilla 目录链接到刚才创建的目录

  1.     ln -sf /tmp/.mozilla $HOME/.mozilla
复制代码

解压刚才备份的tar包

  1.     tar -xpf /var/local/mozilla.tar -C /tmp
复制代码

好了,现在打开 fireofx 看看,切换标签页的速度是不是有所提升了?我记得当时试验的效果是很明星的。如果你也满意,推荐用脚本直接在开机后就解压 tar 文件到 tmpfs 上,关机时就把 tmpfs 上的数据重新打包备份,多方便啊~。这时直接用tar打包的好处是,每当关机时不用等待压缩 .mozilla 目录的文件,我就曾经用7z压缩数据,那速度……

下面是我写的简陋自动脚本,能在 Archlinux 上使用,其他发行版可能需要稍加修改,我只有一个 Archlinux,没办法测试。

新建 /etc/rc.d/firefoxpro 文件,贴上下面的内容

  1. #!/bin/bash

  2. . /etc/rc.conf
  3. . /etc/rc.d/functions

  4. case $1 in
  5.     start)
  6.         stat_busy "Copying Firefox profile to tmpfs"
  7.         if [ ! -d "/tmp/.mozilla" ];then
  8.                 mkdir /tmp/.mozilla
  9.                 cp /var/local/mozilla.tar /tmp
  10.                 tar -xpf /tmp/mozilla.tar -C /tmp
  11.                 mv /tmp/mozilla.tar /var/local/mozilla-old.tar
  12.                 chown clayton:users /tmp/.mozilla ###注意这里,需要将clayton改为你的用户名
  13.                 add_daemon firefoxpro
  14.                 stat_done
  15.         else
  16.                 stat_fail
  17.         fi
  18.         ;;
  19.     stop)
  20.         stat_busy "Backuping Firefox profile from tmpfs"
  21.         if [ -d "/tmp/.mozilla/firefox/njgmwi0t.default" ];then ###注意这里,要改为你的xxx.default目录名
  22.                 cd /tmp && tar -cpf /tmp/mozilla-new.tar .mozilla/*
  23.                 mv /tmp/mozilla-new.tar /var/local/mozilla.tar       
  24.                 rm -r /tmp/.mozilla
  25.                 rm_daemon firefoxpro
  26.                 stat_done
  27.         else
  28.                 stat_fail
  29.         fi
  30.         ;;
  31.     restart)
  32.         $0 stop
  33.         sleep 1
  34.         $0 start
  35.         ;;
  36.     *)
  37.         echo "usage: $0 {start|stop|restart}"
  38. esac
  39. exit 0
复制代码

别忘了给于执行的权限

  1.     chmod a+x /etc/rc.d/firefoxpro
复制代码

编辑 /etc/rc.conf ,把上面的脚本添加到 daemons 处,使其开机就执行

  1.     DAEMONS=( … @firefoxpro …)
复制代码

ok,大功告成了。enjoy it 吧!

最后附上2个有用的小技巧。

   1. 压缩 .mozilla 目录下的sqlite3数据库
      首先把 firefox 关了,然后运行下面的命令,详见通过压缩数据库加速 Firefox

  1.       for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done
复制代码

   2. 分离 Firefox 的临时文件
      Firefox 会在 .mozilla 目录下的 Cache 里存储一大堆浏览网页时的临时文件,这些文件基本上可以无需备份,那我们何必还要将这些临时文件打包进tar包里呢?而且还能减少打包的时间。首先打开 about:config ,将 browser.cache.disk.parent_directory 的值改为 /tmp,没有就新建一个。重启 Firefox ,浏览一些网页后你会发现 /tmp 下多了这个 Cache 目录,里面就是这些杂七杂八的临时文件。

谨以此文向所有Linux用户拜年~
祝大家新的一年里,身体健康,万事如意!
Happy 牛 Year!!


本文来自我的博客,链接:http://shareitem.org/archive/let-firefox-running-in-memory.html
发表于 2009-1-25 16:56:01 | 显示全部楼层
很好的经验,谢谢了。
回复 支持 反对

使用道具 举报

发表于 2009-1-25 17:22:26 | 显示全部楼层
试试~~~,我的内存 512m ,有点少啊
回复 支持 反对

使用道具 举报

发表于 2009-1-25 17:25:04 | 显示全部楼层
我更关注的是,楼主的微操达到了什么样的水准?同时能开20+个tab
以前我用GNOME开6个虚拟桌面,每个桌面都有明确的分工,非常爽,但是20+个tab太不可思议了

如果真能控制自如,建议LZ参加WCG~~~
回复 支持 反对

使用道具 举报

发表于 2009-1-25 18:15:42 | 显示全部楼层
不错不错!多谢LZ分享经验,俺也试试去,哈哈。


Post by ghosTM55;1941404
我更关注的是,楼主的微操达到了什么样的水准?同时能开20+个tab
以前我用GNOME开6个虚拟桌面,每个桌面都有明确的分工,非常爽,但是20+个tab太不可思议了

如果真能控制自如,建议LZ参加WCG~~~


这个……需要高APM么?我经常100+个tab,而且还在坛子里看到有牛人说经常300+。其实一次开这么多并不是同时看撒,我习惯把FF设置为启动时自动打开上次的页面,并且我查资料的时候经常是搜索出了相关内容就一次性打开,然后一个一个看,如果不需要就关掉,如果需要就留着,然后相关内容的页面再进行对比参考,这样难免要在tab之间不断切换,如果一次没有看完,还可以直接关掉FF,下次接着看,如果不让我用多tab,那还真是痛苦,哈哈
回复 支持 反对

使用道具 举报

发表于 2009-1-25 21:28:48 | 显示全部楼层
需要微操么。。
又不是同时操作
回复 支持 反对

使用道具 举报

发表于 2009-1-25 21:34:46 | 显示全部楼层
Post by clinif;1941412
不错不错!多谢LZ分享经验,俺也试试去,哈哈。




这个……需要高APM么?我经常100+个tab,而且还在坛子里看到有牛人说经常300+。其实一次开这么多并不是同时看撒,我习惯把FF设置为启动时自动打开上次的页面,并且我查资料的时候经常是搜索出了相关内容就一次性打开,然后一个一个看,如果不需要就关掉,如果需要就留着,然后相关内容的页面再进行对比参考,这样难免要在tab之间不断切换,如果一次没有看完,还可以直接关掉FF,下次接着看,如果不让我用多tab,那还真是痛苦,哈哈

FF超过9个tab后怎么用快捷键切换的?我最多就开到9个,实在开不了那么多,就用alt+1~9切换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-25 22:59:12 | 显示全部楼层
Post by ghosTM55;1941404
我更关注的是,楼主的微操达到了什么样的水准?同时能开20+个tab
以前我用GNOME开6个虚拟桌面,每个桌面都有明确的分工,非常爽,但是20+个tab太不可思议了

如果真能控制自如,建议LZ参加WCG~~~


我比较倾向于使用鼠标的,而且 firefox 还有一个下拉菜单显示当前窗口所有的标签页,切换还是很方便的~~
有段时间我也尝试开几个 firefox 窗口,每个窗口放类似的网页,比如一个窗口放论坛,另一个就放新闻之类的,但总是不习惯~~~所以放弃了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-25 23:06:10 | 显示全部楼层
Post by ghosTM55;1941438
FF超过9个tab后怎么用快捷键切换的?我最多就开到9个,实在开不了那么多,就用alt+1~9切换


而且我用Google Reader时习惯把感兴趣的内容都打开一个新标签页来看,通常下来都会有超过20个标签页了~
回复 支持 反对

使用道具 举报

发表于 2009-1-26 01:56:14 | 显示全部楼层
Post by ghosTM55;1941438
FF超过9个tab后怎么用快捷键切换的?我最多就开到9个,实在开不了那么多,就用alt+1~9切换


用鼠标点啊,快捷键并不是什么时候都快捷的嘛!Tab Mix Plus这个插件是我必装的插件,可以设置成多行Tab标签,我通常设置成三行,超过了鼠标滚一下就行了。而且这个插件可以以不同颜色或字体显示已读和未读的页面,想看哪个简直一目了然啊。;)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表