itisff
火狐狸
火狐狸
  • UID30643
  • 注册日期2009-10-09
  • 最后登录2016-05-14
  • 发帖数102
  • 经验16枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
阅读:6355回复:22

关于ff页面打开问题的终极解决兼提速

楼主#
更多 发布于:2009-10-09 23:06
第一次发帖,有点啰嗦,请见谅。
用ff已经有2,3年了。刚开始属于尝鲜,渐渐有了兴趣,后来装了几样扩展,迅速成为忠实使用者。平时经常要来论坛里逛逛,不过一般都不冒泡。前几天看到坛子里有一个关于第一次打不开页面的帖子,深有感触,因为我曾为这个问题困扰很长时间,特别是在ff2.x版本中,表现的更为严重,3.x版稍微好一点,但仍存在。我这里有时第一次打不开页面,有时虽然能打开,却是吭吭哧哧,拖泥带水,进度指示旋转半天仍在那里旋转,就是载入不全。同时,又和网络问题交织在一起,很难找到原因。经过不懈摸索,最近终于找出问题所在,特将我的心得写出来,供大家,特别是深受页面打开之苦的人参考。

首先要说的是,在浏览器的速度问题上,解析和渲染是两个不同的侧面。渲染是表面现象,解析才是根本问题。浏览器拼速度,主要是看解析的速度。现在网络上ff提速的文章到处都是,许多常常是将两者混淆起来,有的甚至是本末倒置,在开始的时候,我就受过这种误导,在优化的过程中走了弯路,下面要说的是一些常见的问题。

第一个问题,关于pipeline.这不是主要问题,但有必要说一下。许多文章首先就要你打开pipelpne,有的还很夸张,甚至离谱到了把数值开到80,这绝对有害无益。在我的印象中,pipeline从来没有解决我实际遇到的问题。况且我现在不开pipeline,也可以在载入时把带宽撑破(2M),即使是米国的网站也每每如此,那我为什么还要开pipeline?纵观现在的浏览器,包括chrome,都是默认不开pipeline的,默认开pipeline的,似乎只有opera一家。而 opera——不是我看不起opera,虽然它的手持版做的很棒。我确实有点看不起opera,一股小家子气。
第二个问题,关于nglayout.initialpaint.delay.许多文章要求把这个值降为0。这看似完美,实际上,大大的有问题。这个参数表示,在ff开始渲染页面之前,需要等待多长时间。我们知道,打开一个页面,首先是要载入,然后解析,最后才是渲染。如果让ff在刚刚开始载入的时候就开始渲染,无疑会对前两个过程带来不利,进而拖累表现。这个值,ff的默认值是250,在我这里是2000,实际使用中,许多页面常常是一瞬间就打开了,并不会等到2秒。ff也表示,调高数值会加快页面的整体打开速度。
第三个问题,Content.interrupt.parsing。这个值表示在ff解析的过程中,是否调低速度以响应界面事件,比如键盘动作。许多文章设为true,并设计了一系列不同的数值,让人眼花缭乱。我认为不管数值怎样设计,都会降低解析的速度,所以,应该false。放心,对使用不会有任何影响。
第四个问题,content.notify.ontimer。ff在页面渲染的过程中,仍会有新的内容不断的载入。因此,要不断的回流,来解析新的内容,这会极大的减缓打开的速度。当这个值为true时,表示按一定的时间段回流,为false时,表示一有新的内容就回流。默认为false,我这里是true。
然后,定义回流间隔的时间,content.notify.interval,为2000000,即2秒。
最后一个数值,也就是最最关键的数值,正是因为它的出现,一举解决了所有问题。当上述参数设好以后,你会发现,出现了一个新的参数,content.sink.event_probe_rate,这个参数,google上面搜不到相关内容,所有的提速教材里面也都未提及。从字面上看,表示对内容提取的速率,应该是指,在一定的时间段内,来提取载入的内容以供解析的速率。这个数值很关键,如果速率过小,会降低网络响应的速度,这正是问题的主要原因。而如果速率过快,会加重解析的负担。那么,这个时间段是多少呢,我想,应该是定义回流间隔的时间,因为正是在那个值出现以后,这个值才出现的。默认值是3,显然太保守。如果按每0.1秒来提取一次的话,我这里就是20。

好了,经过上述调整以后,你的firefox已经彻底脱胎换骨,重新做人了。每一次打开页面都干脆利落,不再半途而废。忘掉chrome吧,firefox从此也有傲人的速度,还有那么好的扩展。你会发现,firefox从未如此完美过,你从未如此喜爱过firefox.
itisff
火狐狸
火狐狸
  • UID30643
  • 注册日期2009-10-09
  • 最后登录2016-05-14
  • 发帖数102
  • 经验16枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
1楼#
发布于:2009-10-09 23:06
还要说一下,忘掉了两个参数,貌似有作用,但不能确定。network.ftp.idleConnectionTimeout和network.http.keep-alive.timeout,默认值300,改为5。
itisff
火狐狸
火狐狸
  • UID30643
  • 注册日期2009-10-09
  • 最后登录2016-05-14
  • 发帖数102
  • 经验16枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
2楼#
发布于:2009-10-09 23:06
lusijin

有不同意见
回到原帖


开玩笑的成分居多。其实我是很钦佩opera的。这样说的目的,也是希望他们能再接再厉,提供更好的用户体验,为浏览器技术注入更多活力。
itisff
火狐狸
火狐狸
  • UID30643
  • 注册日期2009-10-09
  • 最后登录2016-05-14
  • 发帖数102
  • 经验16枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
3楼#
发布于:2009-10-09 23:06
liuxb:楼主这两个参数是怎么设的?
content.max.tokenizing.time
content.switch.threshold
回到原帖


当Content.interrupt.parsing的值为false时,这两个参数不起作用。如果希望它们起作用,可将Content.interrupt.parsing设为true。具体方法参见楼上。

  本文的目的主要是为了解决网页打开的稳定性和兼容性问题,提速只在其次。如果你平时打开网页没什么问题,不必使用本方法,因为它很可能会造成观感上的变慢。
itisff
火狐狸
火狐狸
  • UID30643
  • 注册日期2009-10-09
  • 最后登录2016-05-14
  • 发帖数102
  • 经验16枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
4楼#
发布于:2009-10-09 23:06

那提速的方法到底是啥呢.. 最近有用过chrome.真的感觉就是杀的一下就出来了..
就是定制性太太太差..不能然我们去适应她啊....
lz是不是考虑存在写篇文呢...哈哈


我感觉,在兼顾稳定性的前提下,firefox默认的速度已经是尽了全力了。与chrome相比,更深层次的原因是引擎问题。所谓鱼与熊掌不可兼得,如果用起来顺手,不必在乎那一两秒的差别。
游客

返回顶部