2010年4月24日土曜日

firefox PGOでビルド

Windows用は、公開している人が多いのだが、Linuxばあまりいないようだ。
まあ、使っている人もWindowsと比べるとあまりいないのだが。
そこでLinuxでfirefoxをPGOでコンパイルするには

.mozconfigに以下を追加して
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-pgo
mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'

次のコマンドを
# firfox のビルド先
PGO=/$HOME/src/mozilla/ff-pgo

make -f client.mk build MOZ_PROFILE_GENERATE=1
OBJDIR=$PGO python $PGO/_profile/pgo/profileserver.py
make -f client.mk maybe_clobber_profiledbuild
make -f client.mk build MOZ_PROFILE_USE=1

これで普通は上手くいくのだけど、ベータ版だと途中で失敗する。
まあ、これはディレクトリがないとかいわれてエラーになるので、
単純に、ディレクトリを作れば問題ない。

通常とPGO版の速度差は、はっきりいて違いを感じない。
家のCPUがPentium3だからSSEまでしか使えないのが問題なのか分からないが自己満足の世界だな。

いちいちディレクトリを作るのが面倒なのでスクリプトにしてみた。

#! /bin/sh
export CFLAGS
export CXXFLAGS=$CFLAGS
export CPPFLAGS=$CFLAGS
cd $HOME/src/mozilla
PGO=`pwd`
PGO=$PGO/ff-pgo
## ここで最新のコードに変更する mercurialが必要
hg pull
hg update -C
mkdir ff-pgo/js/jsd/idl/_xpidlgen
#1回目のビルド
make -f client.mk build MOZ_PROFILE_GENERATE=1
if [ $? -ne 0 ]
then
echo "プロファイル Generate 失敗"
exit
fi
OBJDIR=$PGO python $PGO/_profile/pgo/profileserver.py
make -f client.mk maybe_clobber_profiledbuild
mkdir /home/takeshi/src/mozilla/ff-pgo/js/jsd/idl/_xpidlgen
make -f client.mk build MOZ_PROFILE_USE=1
if [ $? -ne 0 ]
then
mkdir /home/takeshi/src/mozilla/ff-pgo/js/jsd/idl/_xpidlgen
#2回目のビルド
make -f client.mk build MOZ_PROFILE_USE=1
if [ $? -ne 0 ]
then
echo "プロファイル USE 失敗"
exit
fi
fi

0 件のコメント:

コメントを投稿