この夏の初めごろ、MozillaがElectrolysisというコードネームで、Firefoxブラウザーの多重処理アーキテクチャに取り組んでいることを本誌は報じた。それから数か月後にMozillaは、ユーザー人口の1%を対象とする初期テストを終え、MozillaのFirfox担当ディレクターAsa Dotzlerによると、初期としては良い結果を得たそうだ。

同社の報告によると、応答性は400%改善し、大きなWebページのロード時間は700%改善された。これらの数字は、ユーザーがブラウザーのフリーズや休止、遅れ、クラッシュなどを、もうめったに体験しないことを意味している。Dotzler自身は、これまでのバージョンを“janky”（駄作、二流品）と呼んでいる。

来週はFirefoxユーザーの10%に多重処理が行き渡る。当面、アドオンを使っているユーザーには、この新しいアーキテクチャが配布されない。このような段階的な展開は、配送のバグを避けるために、この業界ではよく行われる。Mozillaは同じテストをニューバージョンのユーザーグループと、従来バージョンのユーザーグループの両方に対して行い、結果を比較している。

今のところ、多重処理は単一コンテンツや単一ブラウジングのプロセスに限定されている。今後のバージョンでは、複数コンテンツのプロセスやサンドボックス化にも適用される。

数週間後にMozillaは、テスト対象として選んだユーザーの全員に多重処理を手渡す。それは、全ユーザーの40-50%に相当する。そして半年後には、ほとんとどのユーザーにこの機能が行き渡る。これらの過程をFirefoxのバージョンで表すと、下記のようになる:

Firefox 49: 一部のアドオンを多重処理対応にする

Firefox 50または51: サンドボックスとその他のアドオンを多重処理化

Firefox 52または53: 複数のコンテンツプロセスに対応

これから数か月かけてMozillaの技術者チームは、力点をセキュリティの改善とWebデベロッパー向けの新しい機能へ移す。

チームはこれまで、長い時間をかけて、新しいブラウザーがなるべく多くのユーザーからアクセスできるよう、努めてきた。意外と手こずったのが、二方向エディティングで、アラビア語のように“右から左へ”のサポートはFirefox 49-51ぐらいになる。

初めのころユーザーが心配したのは、多重処理によってRAMの使用量が増えること、それにより〔RAMの少ないシステム上では〕ブラウザー全体が遅くなることだった。

DotzlerによるとMozillaは過去5年間、MemShrinkと呼ばれるメモリ節約プロジェクトに取り組んできた。それにより、低メモリ消費が実現したからこそ、多重処理も可能になった。プロセスが一つ増えると、オーバヘッドは約20%増える。今の計画では、Webページ一つにプロセスを一つ与える、というやり方はしない。今チームは、今後の展開では最大プロセス数をどれぐらいに限定すべきかを、研究している。複数のページに一定数のプロセスを割り当てる場合、ページの集合をランダムに決めるべきか、ドメインでまとめるべきか、という検討課題もある。

Dotzlerは語る: “競合製品を見ることも、勉強になる。それらは多重処理をRAMの多用で実装しているから、行き詰まることもありえる。それらを反面教師としてMozillaでは、ユーザーのRAMを食い尽くさないアーキテクチャを構築している”。

忘れた人も多いかと思うが、ElectrolisisはMozillaにとって初めての、多重処理アーキテクチャの試みではない。6年前のProject Candleは、モバイルのFirefoxに多重処理を持ち込んだ。でもDotzlerによると、当時のモバイルのシステムでは無理だと分かり、そのプロジェクトは廃案にされた。

Firefoxの今のモバイルブラウザーは単一プロセスで動いているが、スマートフォンの処理能力の向上に助けられている。今および将来の高性能なスマートフォンなら、複数のコンテンツプロセスを動かすことも、可能だろう。

[原文へ]

（翻訳：iwatani(a.k.a. hiwa））