Firefox Hacks:最速Firefoxをビルドしよう【前編】 (1/2)

Mozilla Foundationによって公開されている公式のFirefoxバイナリは、さまざまな環境で安定して動作するようにビルドされている。言い換えれば、チューニングの余地があるということだ。本稿では、Firefoxのビルド方法について解説し、コンパイラやビルドオプションによるパフォーマンス向上に挑戦する。


Firefoxのビルド

 Firefoxはオープンソースソフトウェアであるため、環境さえ整っていれば誰もが簡単にコンパイルできる。実際、ユーザーの手によってビルドされた「野良ビルド」などと呼ばれるバイナリがネット上で数多く公開されている*。Mozilla Foundationによって公開されている公式バイナリは、さまざまな環境で安定して動作するよう「消極的」なコンパイルオプションが指定されているが、このような「野良ビルド」の多くはコンパイラによる最適化、特にPentium 4やAthlonなど、特定のCPU向けの最適化が行われていることが多い。

 最近のコンパイラは最適化能力が強化されているため、適切な設定でFirefoxをビルドすることでより高速なFirefoxを作れる可能性が高い。また、コンパイル時のオプションでしか有効/無効化できない機能も存在する。

 そこで、本パートではLinuxおよびWindows環境におけるFirefoxのビルド方法を解説し、さらにビルド時のオプションやコンパイラの違いによって、Firefoxのパフォーマンスがどれだけ変わるのか検証する。

 なお、Firefoxはすべてのプラットフォームに対して同じソースからビルドされており、そのビルド方法もほぼ共通化されている。また、Firefoxはブラウザやメールクライアント、HTMLエディタなどが統合されたアプリケーションであるMozillaに由来しているため、現在でもそのソースの大部分はMozillaやThunderbird、カレンダーアプリケーションであるSunbirdなどと共有されている。よって、ここで解説するFirefoxのビルド方法はほかのMozilla由来アプリケーションのビルドや、ほかのプラットフォームでのビルドなどにも簡単に応用できるだろう。

Linux環境でのビルド

 Linux環境でのコンパイルにはGCCを使用するのが一般的だ。また、各種開発ツールやライブラリが必要である。最低限ビルドに必要なツールやライブラリは表1のとおりだ。最近のディストリビューションではどれもパッケージの形で入手できるので、適宜インストールしてほしい。なお、表1ではDebian GNU/Linux "sarge"(以下、Debian)とFedora Core 4(以下、Fedora)でのパッケージ名も併記してある。

表1 表1 Linux環境でのビルドに必要なツール/ライブラリ

ビルドの手順

 Firefoxのビルドの手順は次のようになる。

  1. ソースの展開
  2. ビルド設定ファイルの作成
  3. ビルド実行
  4. インストールパッケージの作成

 なお、Firefoxのビルドには少なくとも300Mバイト以上、デバッグ版をビルドする場合には1.5Gバイト以上の空きHDDスペースが必要だ。また、Pentium 4/3GHz、メモリ512Mバイトのマシンでビルドを行ったところ、30分〜1時間程度の時間が必要であった。

  • ソースの展開

 Firefoxのソースアーカイブを次のように任意のディレクトリに展開する。

$ tar xvjf firefox-2.0.0.3-source.tar.bz2


 ソースアーカイブを展開するとmozillaディレクトリが作成され、そのディレクトリ内にソースが展開される。なお、このmozillaディレクトリの名称はビルドスクリプト内にハードコーディングされているため、変更すると正しくコンパイルが行えないようだ。

  • ビルド設定ファイルの作成

 Firefoxのビルド設定は一般的なアプリケーションとは異なり、mozillaディレクトリ中に.mozconfigという名前で設定ファイルを作成することで行う。make実行時にこの.mozconfigディレクトリを参照してconfigureが実行され、ビルドが行われる仕組みだ。

. ~/mozilla/browser/config/mozconfig ←Firefox用のデフォルト設定ファイルを読み込み

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox_build ←バイナリの生成先ディレクトリを指定

export CC="/usr/local/bin/gcc" ←使用するCコンパイラを指定

export CXX="/usr/local/bin/g++" ←使用するC++コンパイラを指定

ac_add_options --disable-optimize ←--disable-optimizeオプションを指定


リスト1 .mozconfigファイルの例

 リスト1は.mozconfigファイルの例である。この例では、Firefoxをmozillaディレクトリ以下のfirefox_buildディレクトリ中で、「--disable-optimize」オプション付きでビルドするよう設定している。.mozconfig内ではconfigureに与えるオプションを「ac_add_options」で指定できるほか、configure実行時に設定する環境変数も指定できる。なお、configureで設定できる代表的なビルドオプションは表2のとおりだ。ビルドオプションの完全な一覧は次のようにconfigureを「-help」オプション付きで実行することで表示できる。

$ ./configure --help


表2 表2 Firefoxの代表的なビルドオプション

 また、Web上で.mozconfigファイルの内容を生成できる「UNIX Build Configurator」というツール(図1)も公開されている。適宜利用してほしい。

図1 図1 「UNIX Build Configurator」ツール

このページで出てきた専門用語

ネット上で数多く公開されている

「Firefoxまとめサイト」で多くの最適化ビルドが紹介されている。

GTK

configureオプションではほかのGUIライブラリを選択することもできるが、動作は未確認。


関連キーワード

Firefox | Firefox拡張機能 | Firefox Hacks


       1|2 次のページへ

Copyright© 2010 ITmedia, Inc. All Rights Reserved.




キャリアアップ



エンタープライズ・ピックアップ

news004.jpg 世界で勝つ 強い日本企業のつくり方:利用契約の検討――グローバルクラウドで失敗しないために(前編)
2010年以降、クラウドサービスの利用がさらに加速する。サービスを利用する企業はプロバイダーのデータセンターに預けた自社情報を保護するために、法的な要素を理解しておかなければならない。企業が注意を払うべき法的な検討事項を整理する。

news001.jpg IT投資の新方程式:「Twitter使ってます」――現役MS社員が“社員力”を語る(前編)
マイクロソフトが掲げるプロモーションメッセージ「社員にチカラを。ITで企業力を。(以下、BIEB)」からは、ITで社員の生産性を向上することが業績の拡大につながる、といったニュアンスを感じる。そこで気になるのが「じゃあ、マイクロソフトの社員自身はどうなのよ?」ということ。3人の現役MS社員により実態が明らかになる……?

news010.jpg 産業構造を変えるか:「住宅クラウド」の衝撃
住宅都市工学研究所が進める「住宅クラウド」は、クラウドが企業のIT領域にとどまらず、ビジネスのやり方自体を変える可能性を示している。

news010.jpg オルタナティブな生き方 栗原進さん:ネットでリアルを楽しくしたい
SE出身の企業広報マンでありながら、趣味は落語で憧れの人はインディ・ジョーンズとアナログ全開の栗原さんに、ブログを書く理由やネットからはじまるコミュニケーションについて伺った。

news001.jpg 最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。