アドオンのパフォーマンスを向上させるために

[これは Mozilla Add-ons Blog の記事 Improving Add-on Performance の抄訳です]

Firefox のパフォーマンス、特に起動時間とページの読み込み速度は、ユーザにとって大変重要な課題です。カスタマイズもまた同じぐらい重要です。アドオンによるパフォーマンスへの影響はほとんどの場合わずかなものですが、中には大幅に低下させてしまうアドオンもあります。アドオンがそうした低速化の原因となることに多くのユーザが気付いていないという現状も踏まえて、Mozilla ではパフォーマンスの向上に力を入れています。

どのぐらい遅くなるのか?

平均すると、アドオンをインストールするたびに Firefox の起動時間が 10% 程度遅くなります。ユーザのコンピュータ環境、つまりハードウェアやソフトウェアの構成によって左右されますが、ほんのミリ秒単位で済む場合もあれば、0.5 秒ほどになってしまう場合もあります。多くのアドオンが 10% 以下に収まる一方で、残念ながらそれ以上に遅延させるアドオンも少なからず存在します。なお、私たちが調査した 実際のパフォーマンスデータ によれば、アドオンを 10 個インストールすると Firefox の起動時間が倍になることが分かりました。

Mozilla の取り組み

アドオンによるパフォーマンスへの影響を減らすために、開発者ツール、ドキュメント、ユーザの教育を通じて、私たちが行っているいくつかの取り組みをここでご紹介します。

  • 自動パフォーマンステスト — 私たちは毎週、AMO に登録されている上位アドオン 100 個の自動パフォーマンステストを実施し、その結果を一覧にしています。近く、すべてのアドオンについて、新バージョンのアップロード時に自動的にテストを実施するよう改善します。今後数か月以内に、ページ読み込み時間など、その他の評価も加える予定です。
  • パフォーマンス遅延警告 — 2 週間以内に、AMO において、Firefox の起動時間を 25% 以上遅延させるアドオンについて警告を表示するようにします。ユーザには、どのアドオンがパフォーマンスに影響するのかといったデータを知らされる権利があり、十分な情報を得た上で各アドオンをインストールするかどうか判断して欲しいと考えています。Firefox の今後のバージョンでは、アドオンマネージャにも同様の警告が表示されます。[可能であれば AMJ でも表示します]
  • パフォーマンスに関するドキュメントと告知パフォーマンスに関するベストプラクティス のページを更新すると同時に、遅いアドオンの作者に連絡を取って、パフォーマンスを改善するよう依頼を始めました。これは AMO に掲載されているアドオンに限らず、Mozilla が把握しているすべてのアドオンを対象としています。
  • オンデマンドパフォーマンステスト — アドオン作者がパフォーマンス問題を修正した後、Mozilla で公式に評価を行う同一のマシン上で修正の効果が現れているかどうかをテストできるよう、アドオンをアップロードしてその結果を確認できる開発者向けツールを、今後数か月以内に提供します。
  • インストール許可の義務化 — サードパーティ製のソフトウェアがユーザの許可なく Firefox にツールバーなどの同梱アドオンをインストールすることはよくあります。Mozilla へ報告されるパフォーマンス問題の大半はそうしたアドオンが原因となっており、また、どうしてそのアドオンがインストールされたのか、どうやって削除すればいいのか、ユーザが理解できない場合も多々あります。Firefox の今後のバージョンでは、ユーザが Firefox へのインストールを明示的に許可しない限り、サードパーティ製のアドオンはインストールされなくなります。これによって、Firefox のパフォーマンスが大幅に改善されるとともに、ユーザがアドオンに関して本来持つべき管理権限を取り戻せると期待しています。

アドオン作者がすべきこと

  1. ユーザのブラウザ環境として考えられるあらゆる構成で テスト してください。
  2. パフォーマンスに関するベストプラクティス学び、アドオンの開発時に活用してください。
  3. 起動時間への影響を 5% 以下に抑えるよう、アドオンを最適化してください。

サポートが必要な場合や質問がある場合は フォーラムで聞いてください [日本語での質問は modest の Google グループ へ]。また近く、パフォーマンスの改善につながる資料やツール、アドバイスを提供します。

Firefox ユーザができること

遅いアドオンへの最も有効な対策は、使わなくなった アドオンを無効化 することです。アドオンを無効化することで、その読み込みと Firefox の低速化を防ぐことができますし、アドオンマネージャには残せるので、必要なときはいつでも再度有効化することが可能です。

[あるいは、用途に応じて プロファイルを複数用意する こともひとつの対策として考えられます。例えば Web 開発者なら、Firebug などの必須アドオンを、通常のブラウジング用とは別の専用プロファイルに分けてインストールすると良いでしょう]

私たちは、カスタマイズとパフォーマンスのどちらを取るか、Firefox ユーザが悩まされないようにしたいと願っています。アドオン作者と Mozilla コミュニティの協力があれば、それらを両立することは可能なはずです。