Total Pageviews

Thursday 21 September 2017

Firefox优化指南

Firefox的内部配置管理,鼠标可以点出来的Tools > Options menu;仅仅是冰山一角。实际上Firefox将很多参数的设置都放到了一个prefs.js文件中,而且您不需要手动来编辑这个文件,在浏览器中输入about:config就可以了。你会看到一个大大的保证书,要你注意,所有的高级修改有可能会影响稳定性。你必须点击"I'll be careful. I promise!" 才能够继续。OK,大概你已经意识到修改这个是有风险呢,那么我们就先备份一下原有配置吧。
prefs.js的放置位置列表: In Linux it's ~/.mozilla/firefox/<profile ID>.default/ In Mac OS X, the profile folder is <username>/Library/Application Support/Firefox/Profiles/<profile ID>.default/ In Windows XP, the profile folder is \Documents and Settings\<username>\Application Data\Mozilla\Firefox\Profiles\<profile ID>.default\ In Windows Vista, this folder is \Users\<username>\AppData\Roaming\Mozilla\Firefox\Profiles\<profile ID>.default\
修改的时候需要注意,不管是什么参数,只有 string (text), integer (number) or Boolean (true/false)三种属性值。
那么现在的问题就是到底改什么才能提高速度了。后面我根据网上的一篇《Hacking Firefox:: The secrets of about:config》文章来给大家介绍如何修改和告诉你为什么,这才是文章的意义。不知道为什么的教程,实在不知所云。
整个指南的参数不一定已经存在在你的配置中,如果没有这些属性,你就自己创建出来。
下面就让我们开始吧~!
一些修改是用来加速页面的显示速度的,也就是可以加快页面呈现速度,这些设置可以让你的页面更快的展现出来,减少了你等待的时间。还有一些写关于网络部分加速的,这些我们后面来讨论。

开始呈现页面时间

nglayout.initialpaint.delay 设定Firefox等待多久开始呈现页面,如果这个值没有设定,默认是250毫秒,也就是0.25秒,你可以设定为0,让它立刻开始呈现页面。

减小reflows数量

content.notify.interval Firefox在载入页面的过程中,会根据不同的页面内容来重新格式化页面的载入,比如我们经常看到的文字部分有了,图片慢慢出来,这叫做 reflows。这个选项设置了在不同的reflows之间切换的最小时间。默认为120000 (0.12 秒,这里的单位是微秒,百万分之一秒),这个值太小或者太大都会影响性能,太小的话,就不停的切换,一个部分只停留很短时间,资源就消耗在了切换上,太大又会导致切换太慢,本来可以先将一 部分显示出来我们先看着,但是由于切换慢,所以可能每一个reflows都没有载入完毕。建议在 500000 (500,000, or 1/2 second) or 1000000 (1 million, or 1 second) 之间调整。

控制“无响应”时间

content.max.tokenizing.time在Firefox载入页面的过程中,这个参数能够加快页面的载入,但是与此同时将会在一段时间不去响应用户的输入,这个理论被Mozilla叫做"tokenizing"。如果你想设置这个参数,你需要建立一个整数型变量叫做content.max.tokenizing.time,这里设置的是最大值,这个值最好大于或者等于content.notify.interval,如果小于,那么Firefox将会使用更多的资源来响应用户的输入,很明显,大家开网页的时候似乎都没有什么东西要敲的,所以加快速度才是我们的目的,与此同时,要使这个参数生效,你需要创建两个布尔型变量content.notify.ontimercontent.interrupt.parsing,并且设置为true

控制“高响应”时间

当Firefox在呈现一个页面的时候,用户如果执行了一些操作命令,比如在一个正在载入的页面下,滚动鼠标滚轮。Firefox会留下一段时间来给用户做出响应。控制这个间隙时间,我们需要建立一个整型参数content.switch.threshold。通常这个参数的数值是content.notify.interval参数的三倍,但这里我象征性的设置他们两个相等。然后给他们一个很低的值10000 (10,000 微秒,百万分之一秒),这时你会感觉的Firefox响应有些卡,但是却能够更快的完成页面的载入。如果您还没做上一个“无响应”参数content.max.tokenizing.time的调整,也没有建立布尔型参数content.notify.ontimer 和 content.interrupt.parsing ,建议你创建他们并都设置为truecontent.switch.threshold 和content.max.tokenizing.time的调整需要一起来做,以达到最好的效果。
如果你倾向于什么都不做(比如不去滚鼠标滚轮),那么可以把content.max.tokenizing.time加大,content.switch.threshold减小。与之相反,如果你喜欢在打开页面的过程中翻来翻去,那就反其道而行之。

No comments:

Post a Comment