Firefox web browser - Faster, more secure & customizable

Mozillaは2009年第2四半期あたりからマルチプロセスアーキテクチャの研究開発に着手してきた。マルチプロセスアーキテクチャで開発されたブラウザは「Electrolysis」と呼ばれている。現行のFirefoxはプラグインを別プロセスに分離するなど、一部の機能でマルチプロセスになっているが、基本的にシングルプロセスアーキテクチャのままできている。

しかしこの状況もそろそろ変わることになりそうだ。根本的にいくつかの理由でマルチプロセスアーキテクチャへ移行する必要があることが「goals for multi-process firefox」で報告された。具体的なスケジュールの説明はないが、将来どこかの段階でマルチプロセスアーキテクチャへ移行することになりそうだ。

報告されている主な理由は次のとおり。

  • Firefoxはシングルプロセスであるため、ガベージコレクションを実施するときにUIが反応しなくなる。ガベージコレクションの時間が短くなるように、GmailやFacebook、Twitterといったヒープを大量に消費するサイトでも問題なく動作するように改善は進められており大きな成果は上がっているが、それでも完全にUIに影響ないようにすることはできていない。マルチプロセス化することでUIの処理とガベージコレクションの処理が別々に動作するようになれば、現在よりも高いUIのレスポンス性を実現できる。
  • メモリの利用に関しては改善を続けており成果も上がっているが、メモリ分断化の基本的な問題に直面している。長時間実行するとどうしても再配置が不可能なオブジェクトが出てしまい、分断化が発生する。OSにメモリを返すもっともいい方法はプロセスを終了することであるため、マルチプロセスアーキテクチャ化した方がメモリ管理の面で都合がいい。
  • マルチプロセスアーキテクチャはクラッシュに対して耐性がある。
  • セキュリティ上、マルチプロセスアーキテクチャの方が好ましい。最近のOSはプロセスごとにリソース使用に制限をかけるといったことができるため、複数のプロセスに分離し、それぞれ必要な権限のみをもたせて実行することでセキュリティ的に好ましい状態を保つことができる。

IEやChromeはマルチプロセスアーキテクチャを採用しており、マルチコアシステムにおいて高い性能を発揮する。ここ数年、PCのマルチコア化が着実に進行しているが、最近はモバイルデバイスもマルチコア化が進みつつある。こうしたハードウェアの状況を加味しても、マルチプロセスアーキテクチャの採用は自然な方向性といえる。