Posts Tagged ‘sourcecode’
在上一篇blog里用最简单的方式编译了firefox,今天用PGO方式重新优化编译了一下。 官方的PGO编译文档参考https://developer.mozilla.org/en/Building_with_Profile-Guided_Optimization 首先将.mozconfig修改如下: 其中 ac_add_options –enable-optimize=”-O2 -march=native -mtune=native -pipe -fomit-frame-pointer”, ac_add_options –enable-jemalloc, ac_add_options –enable-strip, ac_add_options –enable-install-strip 这四个选项是优化编译选项。 ac_add_options –enable-profile-guided-optimization 这个选项表示用PGO方式编译,而 mk_add_options PROFILE_GEN_SCRIPT=”sh /home/xmx/run-firefox.sh” 这个选项指定了PGO编译第一遍结束后执行的脚本。 而run-firefox.sh的内容如下: 配置结束后在源码顶层目录执行: 注意执行的是profiledbuild而不是之前简单的build 然后就开第一次编译,等待。。。 第一次编译结束后会自动调用run-firefox.sh脚本,运行刚刚编译完的firefox(第一次编译的时候千万不要运行原来的firefox,以免这里出错)。按照平时的上网习惯看一些网页,然后关掉,第二次编译便自动开始了。第二次编译会以第一次编译后运行产生的profile调优,通常能获得相当不错的性能提升。 第二次编译结束后便和普通编译一样了: 在ff-opt/dist下就已经生成了一个打包好的firefox包,解压到任何地方运行就可以了。
最近发布的ubuntu 9.10 karmic 装在我的笔记本上问题重重,经过一番痛苦的折腾后,彻底放弃,降级回8.04 hardy。 但是hardy的源里面的firefox还是3.0版的,于是去Mozila官网下载最新的3.5.5编译好的包。但是运行后发现字体渲染不受System->Pereference->Appearance->Fonts中渲染设置的控制。 一通Google,在主目录下面放置.fonts.conf文件,如下内容: 但是情况依旧。 把hintstyle用hintfull,hintmedium,hintslight尝试,意外的发现hintfull,hintmedium的效果是一样的。再一通Google,猜测Mozilla的官方编译包没有用–enable-system-cairo选项编译,于是只好自己重新编译。 好在编译firefox不是很复杂,网上相关的文章也多,比如http://gastly.iblogger.org/how-to-compile-firefox-35b4-from-source-with-nice-fonts/ 首先安装必要的工具和相关的库: 然后从http://releases.mozilla.org/pub/mozilla.org/firefox/releases/下载最新的源码 然后解开源码包,进入源码目录,新建一个.mozconfig文件,包含如下内容: 这些选项的含义可以在https://developer.mozilla.org/en/Configuring_Build_Options查到,其中重要的是: 只有开启了这个选项,firefox才能正确的渲染字体。 这一选项会让编译出的浏览器的userAgent为firefox,使用Mozilla的firefox图标,否则userAgent为Shiretoko,使用的是一个蓝色地球的图标,如果遇上对userAgent检查严格的网站可能会有问题。但是注意Mozilla是不允许分发非官方的构建时使用firefox的名称和图标的。 之后: 开始编译,编译完成后: 这里的ff-opt目录就是上面在.mozconfig文件中第二行配置的,执行make package后会在ff-opt/dist/下生成一个类似名如:firefox-3.5.5.en-US.linux-i686.tar.bz2的包,解压运行其中的firefox就可以了。 当然也可以在源码顶层目录中执行 会安装在/usr/local下面。 现在字体可以正常的接受~/.fonts.conf的控制了(但依旧不接受 System->Pereference->Appearance->Fonts 的控制,囧)。
