マルチプロセスFirefox:テストの継続





約4か月前、Mozillaはマルチプロセスアーキテクチャの最初のテストを開始しました。 Firefox 48のバージョンでは、一部のユーザーに対してデフォルトで有効になっており、テストサンプルは1.5倍に増加しました。 公式ブログのMozillaによる 、拡張機能がインストールされていないほとんどすべてのFirefoxユーザーがテスターに​​含まれていました。



実験の結果は非常に良かった。 ブラウザの応答時間は400%短縮され、ページ速度の改善は最大700%でした。



マルチプロセッシングが標準のFirefoxの組み込み関数になるテストが終了するまで時間があまりないため、Fire Foxはマルチプロセスを長年使用してきたChrome、Edge、Safari、Internet Explorerの安定性、セキュリティ、速度に追いつく(または追い越す)アーキテクチャ。



マルチプロセッシングとは、Firefoxが複数のプロセス間でタスクを分散できることを意味します。 実際には、ブラウザーでは、これはブラウザーのユーザーインターフェイスからレンダリングエンジンを分離することを意味します。 したがって、Webページのレンダリングの問題により、ブラウザー全体がフリーズすることはなく、全体的な安定性が向上します。 タブごとに個別の分離されたレンダリングプロセスが起動される場合、フリーズの問題は1つのタブに限定されます。 さらに、独立したサンドボックスで分離をレンダリングすると、セキュリティが向上します。レンダリングエンジンの脆弱性に対するエクスプロイトを使用するのがより困難になります。



Chromeなどは、長年にわたってマルチプロセッシングを使用しています。 Chromeでは、2008年にリリースされた最初のバージョンからまったく存在しません。 ある意味、技術的なブレークスルーでした。 興味深いことに、Chromeの最初のバージョンを作成するために、Google は複数のFirefox開発者をスタッフ招待しましたが、彼らは失望しませんでした。



しかし、Mozilla自身のビジネスは少し行き詰まっています。 コードネームElectrolysis (e10s)と呼ばれるマルチプロセスアーキテクチャの開発は2009年に開始されましたが、2011年から2013年の間に「優先順位の変更により」中止されました。



2015年に新しい拡張システム移行した直後に、マルチプロセスアーキテクチャの作業が再開されました。 新しいシステムはWebExtensionsプログラミングインターフェースを実装しました。これは、ChromeおよびOpera拡張機能とほぼ互換性があります。



2016年8月、電解は最終的に生産テストに成熟しました。 その後、Firefox 48が登場し、拡張機能のないブラウザを使用する限られた数のユーザーに対してマルチプロセッシングが有効になりました。



マルチプロセッシングを有効にするには、 about:config



に移動しabout:config



、論理パラメーターbrowser.tabs.remote.autostart



true



設定しtrue



。 マルチプロセッシングが有効になっていない場合は、新しい論理パラメーターbrowser.tabs.remote.force-enable



を作成してtrue



設定しtrue



。 操作の結果は、「マルチプロセスウィンドウ」セクションの[ about:support



]タブに表示されます。







さらなるテスト



Firefox 49からは、実績のあるアドオンの限られたセットでブラウザーでマルチプロセッシングのテストを開始しました。 結果は勇気づけられるものでした。したがって、Firefox 50のリリースにより、テスト対象者はさらに拡大され、多数のアドオンを備えたブラウザーが含まれるようになりました。 サポートされている拡張機能のリストは、サイト上で更新されています。



別のアドオン互換性レポータアドオンを使用すると、アドオンがFirefoxマルチプロセッシングモードと互換性があるかどうかを確認できます。



これで最後のいくつかの手順が残ります。 まだマルチプロセッシングをサポートしていない拡張機能を備えたFirefoxアセンブリで、ブラウザの通常の動作を保証する必要があります。 計画によれば、Firefox 51のバージョンでは、マルチプロセッシングと互換性がないと明示的にマークされていない拡張機能を使用することを計画しています。



さらにMozillaは、アーキテクチャ自体を改良します。 レンダリングエンジンを個別のプロセスに分離することに加えて、いくつかのコンテンツプロセスのサポートを実装する必要があります。 この場合、パフォーマンスの向上は可能な限り最大になり、個々のタブのフリーズによるブラウザの安定性のリスクは最小限に抑えられます。



最初に、2番目のコンテンツプロセスがNightlyブランチに実装されました。 現在、開発者は、電解が耐えることができ、バグをキャッチできる個別のプロセスの数をチェックしています。



2番目の大きなタスクは、権限が制限されている子プロセスでセキュリティサンドボックスを実装することです。 Firefox 50では、サンドボックスはWindowsリリースで最初に実装されました。 これはまだ最初の実験版であり、適切に保護されていません、と開発者は警告します。 Firefoxの将来のバージョンでは、サンドボックスはMacおよびLinuxに追加される予定です。



数年遅れていますが、Firefoxはついにマルチプロセッシングを導入しています。 そして、これはこの素晴らしいブラウザのすべてのユーザーにとって素晴らしいニュースです。 絶対に遅れることはありません。 そして、急いでしないで、すべてを正しくする方が良いです。 初期のテストでは、電気分解によりパフォーマンス、安定性、セキュリティが大幅に向上することが示されました。



All Articles