[[PageNavi(NavigationList)]]
== インテル コンパイラーでビルドする高速Firefox ==
近年、そのパフォーマンス競争が盛んに行われている分野として、Webブラウザが挙げられる。たとえばSafari 4のベータ版は自らを「世界最高速」とうたうなど、それぞれのWebブラウザが自身の高速性をアピールしているが、それではWebブラウザのコンパイルにインテル コンパイラーを利用することでパフォーマンスを向上できないだろうか?
そこで[http://sourceforge.jp/projects/freshmeat_firefox/ Firefox]の最新版であるFirefox 3.1 ベータ2について、Windows環境でインテル コンパイラーを使用してコンパイルし、そのパフォーマンスを調査してみた。
==== Windows環境でのFirefoxのコンパイル方法 ====
Firefoxのコンパイル方法については、Mozilla Developer Centerの[https://developer.mozilla.org/ja/Build_Documentation Build Documentation]にまとめられているが、簡単にまとめると下記のようになる。
====== 1. MozillaBuildをダウンロードしてインストールする ======
FirefoxやThunderbirdといったMozilla製品をWindows環境でコンパイルするのに必要なツール一式をまとめたものが、!MozillaBuildである。[http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ FTPサイト]から!MozillaBuildSetup-1.3.exeをダウンロードし、インストールする。なお、インストール先はデフォルトの「C:\mozilla-build」が推奨されている。
====== 2. Firefoxのソースコード一式をダウンロードして展開する ======
Firefox 3.1 ベータ2のソースコード一式は[ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.1b2/source/ FTPサイト]から入手できる。このファイルをダウンロードし、任意のフォルダに展開する。なお、展開先フォルダはマルチバイト文字および空白が含まれていないことが望ましい。今回は、C:\work以下に展開した。
====== 3. ビルド環境設定ファイルを用意する ======
Firefoxのビルド設定は、「mozilla-central」フォルダ中の「.mozconfig」というテキストファイルを使用して行う。このファイルに設定オプションを記述していくのだが、通常は次のように記述すればよい。この場合、mozilla-centralフォルダ以下の「ff-opt」フォルダ以下に作成されたバイナリが格納される。
{{{
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
ac_add_options --disable-tests
}}}
====== 4. MozillaBuildに含まれる環境設定スクリプトを実行してシェルを起動する ======
!MozillaBuildに含まれる環境設定スクリプトを実行し、ビルド環境を起動する。インテル コンパイラー用のスクリプトは用意されていないので、インテル コンパイラー11.0でビルドする場合はこちらで用意した[http://sourceforge.jp/projects/mag/releases/?package_id=9057 start-icc11.bat]をダウンロードして!MozillaBuildのインストールフォルダにコピーし、これを実行すればよい。また、Visual C++ 2008を使用する場合は「start-msvc9.bat」を実行すればよい。そのほかの環境の場合は実行するスクリプトが異なるので、'''表1'''を参考に環境に応じたスクリプトを実行する。
====== 5. インテル コンパイラーでコンパイルするためにコードを修正する ======
WindowsでのFirefoxのコンパイルはVisual C++の使用を想定しているため、インテル コンパイラーでコンパイルするためには一部の設定ファイルやソースコードを修正する必要がある。修正点は[http://sourceforge.jp/projects/mag/releases/?package_id=9057 パッチファイル(firefox-3.1b2-icc-diff.patch)]にまとめてあるので、こちらをFirefoxのソースコードを展開したフォルダ中の「mozilla-central」フォルダにダウンロードし、先ほど起動したシェルで次のように実行する。
{{{
$ cd <Firefoxのソースコードを展開したフォルダ>/mozilla-central
$ patch -p1 firefox-3.1b2-icc-diff.patch
}}}
====== 6. コンパイルの実行 ======
最後に、シェルで次のように実行するとコンパイルが開始される。
{{{
$ make -f client.mk build
}}}
コンパイルが完了すると、ff-optフォルダ内の「dist\bin」フォルダに実行ファイルやライブラリ一式が作成される。
[[PageNavi(NavigationList)]]