解开Firefox3的速度之谜,以及闲扯

Mozilla向来爱护自然,不只是产品线中的各种动物:Firefox、ThunderBird、SeaMonkey、SunBird、SongBird……如果你对Firefox熟悉,你会发现FF的内核被称为Gecko(壁虎),连开发代号都是以公共公园来命名:FF 2.0的代号是”Bon Echo”,FF 3.0为”Gran Paradiso”,把这两个名字加上关键字“公园”之后google一下,你就知道它们的位置了:)

可能是Gran Paradiso实在不方便记,3.0又有一个形象的测试版本号”Minefield”(雷区),开始感觉到火药味了吧:p

和现在的2.0不同,FF 3.0使用新一代的Gecko 1.9引擎渲染网页,而2.0中用的是Gecko 1.8,这0.1的差别究竟在哪里?关键在于Gecko 1.9采用了”Cairo ”(开罗)这一开源的2D图形架构进行页面渲染,简单点说,就是利用了你的显卡进行网页的渲染工作。

听上去似乎有些神奇?其实最早采用这种技术的公司是苹果,利用显卡的GPU和显存进行系统界面的特效渲染,现在让人又爱又恨的Vista特效也正是又一次”借鉴”了老朋友苹果的创意,但这两家似乎都没有试图把牛刀从鸡脖子上挪开。由于现在的显卡已经强大的过分(ATI曾经说自己一块显卡的运算能力可以抵上5块同频的IBM CPU…= =b),以至于在你上网或者处理文本的时候它几乎是不工作的,于是有人便试图利用闲置的显卡来分担一些CPU的工作,多好的提议啊!不过。。。等等。。。这似乎又有些不对了。回顾显卡的诞生,正是由于CPU无力分担大量的图形计算才开发出的辅助性硬件,结果却生出了这么个怪物“孩子”,卖的比母亲还贵,耗电比母亲还大,现在居然又要反过头来给母亲喂奶了?IT世界里果然有奶便是娘- -b

扯远了,扯回来。Cairo便是FF 3.0解决高资源占用的关键。很多之前不可能的事成为了现实。。。比如。。。开着3部电影的同时流畅上网。。。好吧,这只是个比方,我也挺想抽自己的= =#

开罗渲染算是最重要的变更,其余的便是代码的优化,java执行的效率大大提高,但在beta3到beta4的时候官方用了一个小花招:PGO编译。。。是不是要晕了。。。我尽量讲简单点。。。

软件从代码到可以执行的软件包需要一个编译的过程——把所有用到的程序组件有机结合。打个比方,和配药一样,你必须考虑到用户的体质,如果有拳击手一样的体格,显然给他和老头老太用一样剂量是很低效的策略。所谓PGO就是这个原理,各代CPU的“体质”都不同,给足“拳击手型”CPU大剂量便是PGO优化编译。向来作为官方编译发布版的版本,第一点便要求普遍适用,第二点是稳定,否则就会招人骂。但有意思的是FF向来是连386级别的CPU都支持的,现在的单核芯片按照这样的命名都可以称作686了,于是在beta4中加入了sse PGO优化,拳击手瞬间痊愈了,不要给敌人任何的机会!效率是提高了20%多。。。但老头老太们。。。你们要没救了,还是吃旧的2.0配方吧。。。

突然觉得,和当年微软宣布抛弃win98和winme的支持一样,有点伤感。。。386们给我的童年留下了多少美好的记忆。。。我说我怎么就这么扭曲呢- -|||

3.0最后的变化算是书签系统用了Places,其实就是用微型SQLite数据库来储存历史记录、书签等等,由于SQL语句查询具有较高的效率,可以实现很多功能,比如基于类似原理的苹果系统的无等待搜索,现在在FF的地址栏就可以做到。

扯了这么多。。。还是希望有人可以坚持看完。。。谢谢捧场,散会!

谁闲的想转载,请麻烦留trackback或者著名小菊,谢谢><

This entry is filed under network, tech. You can follow any responses to this entry through RSS 2.0. You can leave a response, or trackback from your own site.

10 Comments

  • At 2008.12.23 19:34, 魔堕凡尘 said:

    FF3至少感觉上比FF2要流畅许多,还增加了诸如“访问最多”之类贴心的设计。FF3.1测试版已经出了,无奈我用的多个附加软件都不支持3.1,只好先用着3.0,观望吧。

    • At 2008.09.19 22:07, said:

      不能用网上银行的诶…

      • At 2008.03.14 08:29, 小菊 said:

        干嘛要用自己的名字。。。很傻很天真的

        • At 2008.03.14 01:14, YTT said:

          师父你也不弄个留言板~有用自己名字命名的BLOG很炫哦!
          推荐你一个 http://www.wangxiaofeng.net/

          • [...] 前面在狐狸鼓动下换用了FF2,除了因为有类似NoScript之类插件保证我浏览安全之外没觉出有什么好,甚至开页面速度还不如Maxthon。不知道是浏览器本身的问题还是我机器不行,反正少不了抱怨一下FF的名不符实。前两天看到小菊在博客上写了一篇评测,本来我也没想换的,无奈今天FF2突然出了问题,下面的状态栏一下子占了半个屏幕,而我懒得探索,也不知道怎么会成这样,索性升级——这几乎成了我处理此类问题的一贯策略,想当初KIS6不能更新的时候我就是装了KIS7了事,结果导致伟大的卡巴杀手不能用,不得不再花78块钱续费一年…… [...]

            • At 2008.03.09 19:14, 管事 said:

              我觉得必需的插件除了NoScript就是IE Tab,别的都可有可无,当然我还是比较习惯Drag&Go这种东西的……

              • At 2008.03.09 13:40, 小菊 said:

                很多主流插件都开始支持了,但其实可以装一个开发者插件屏蔽掉版本检查,不过FF3多了一重安全更新检查,都可以通过config:about页来屏蔽
                大多数还是好用的,有些会脑抽,比如我以前一直用的标签插件,还有super drag&go有点小问题(已经有人修正了)

                • At 2008.03.09 12:41, 百毒 said:

                  我想问问。。。那个。。。FF3好用的插件多么?

                  一直想用FF3,可是害怕我习惯的几个插件都不能用了怎么办。。

                  • At 2008.03.09 00:34, 小菊 said:

                    恩 我也爱你。。。

                    • At 2008.03.09 00:29, 管事 said:

                      小菊我爱你

                      (Required)
                      (Required, will not be published)