Firefox web browser - Faster, more secure & customizable

Firefoxの最大の魅力のひとつが強力なアドオン/エクステンション機能だ。しかしこれは同時に、Firefoxの起動が遅い原因のひとつにもなっている。クリーンなプロファイルの状態でインストールしたばかりのFirefoxを起動すると、それなりに素早く起動する。仮に大量の履歴データとブックマークデータがあったとしてもほとんど重くならない。MozillaはFirefox高速化の取り組みを進めており成果が上がっている。

起動を遅くする最大の原因はアドオン/エクステンションにある。仮に1つのエクステンションの起動時間が200msだとする。これ1つだけしか使っていないならそれほど重さは感じない。しかし同様のエクステンションが10インストールされていれば1秒であり、20インストールされていれば2秒かかることになる。ここまでくると起動がもっさりしているという感じを受ける。

Jorge Villalobos氏がHow to Improve Extension Startup Performance « Mozilla Add-ons Blogにおいて、自身の経験を元にエクステンションの起動時間を高速化するための3つのガイドラインを紹介している。比較的簡単なアプローチで高い効果が得られるとし、エクステンション開発者に採用を呼びかけている。紹介されているガイドラインは次のとおり。

  1. 必要になるまで、コードのローディングや実行は実施しない。
  2. JavaScript Code Modulesを使ってJavaScriptコードを可能な限り分割する (JavaScript code modulesはFirefox 3から導入されている)。
  3. ロードハンドラにおける処理を最小限にする。どうしても処理する必要がある場合、nslTimerやsetTimeoutなどを使って起動後に処理されるように遅延実行を実施する。

Jorge Villalobos氏はFire.fm :: Add-ons for Firefoxの開発者でもある。こうした高速化を実施する前はFire.fmの起動分に210msほどかかっていたが、上記変更を実施したことで60ms弱まで高速化したと説明されている。