ニュース

Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る

スクリーンショットツールにはクリップボードへコピーする機能を追加。脆弱性の修正も

「Firefox」v58.0

 Mozillaは23日(米国時間)、「Firefox 58」を正式公開した。今回のアップデートは、パフォーマンスの改善がメイン。Windows版で“Off-Main-Thread Painting”と呼ばれるレンダリングの高速化技術が導入されたほか、新しいJavaScriptのキャッシュ手法“Startup Bytecode Cache”の採用によりページの読み込み時間がさらに短縮されているという。

 「Firefox」のレンダリング処理は、大きく分けて(1)可視要素のリストアップ、(2)スクロールやアニメーションを考慮したレイヤーの割り当て、(3)レイヤーのレンダリングを行う“ラスタライズ(Rasterize)”、(4)GPUに送って最終的なイメージの合成を行う“コンポジット(Composite)”という4つの手順から成る。従来の「Firefox」ではこれらのうち“コンポジット”を除く3つの手順がメインスレッドで処理されており、画面を更新する極めて短いサイクルの中ですべてを完了させないとフレームが欠落してしまっていた。

“OMTP”の導入前。“VSync”の間にメインスレッドの処理(Prepare、Rasterize)までが完了しないとコンポジットが行えない(公式ブログより引用、以下同)

 そこで、「Firefox 58」では“Off-Main-Thread Painting(OMTP)”を採用。ラスタライズ処理をメインスレッドから分離することで処理落ちを回避し、より高い応答性を実現した。Mozillaが行ったベンチマークによると、“Direct2D”の場合で約30%、“Skia”の場合で約25%のフレームレート向上が見られたという。

“OMTP”の導入後。ラスタライズを別スレッドにすることで応答性を向上
Mozillaが行ったベンチマークによると、“Direct2D”の場合で約30%、“Skia”の場合で約25%フレームレートが向上

 一方、“JavaScript Startup Bytecode Cache(JSBC)”はスクリプトの読み込み処理を工夫することでWebページのスタートアップを高速化する。JavaScriptのスクリプトを受け取ると、ブラウザーは字句解析や構文木の生成、バイトコードへの変換といったプロセスを経てスクリプトを実行する。“JSBC”はこの変換済みのバイトコードをキャッシュすることで、次回からの読み込みにかかる時間を短縮するという。Mozillaによると、日頃よく利用するサイトで顕著な改善が期待できるとのこと(Wikipedia:7.8%、Google:4.9%、Twitter:5.4%、Amazon:4.9%、Facebook:12%)。

“JSBC”の導入によるページの読み込み時間の変化

 そのほかにも、“WebAssembly”のコンパイルを高速化。ダウンロードの完了をまたずにコンパイルを開始する“ストリーミング”技術を導入したほか、処理速度を重視したコンパイラーと最適化を重視したコンパイラーを状況によって使い分ける“階層化”を行うことで体感的なパフォーマンスを高めているという。

スクリーンショットツールにはクリップボードへコピーする機能が追加

 また、目に見える部分についてもいくつかの改善が施されている。たとえば、スクリーンショットツールでは、キャプチャーしたイメージをクリップボードへコピーするボタンが追加。“プライベート ブラウジング”でも利用できるようになった。

 なお、本バージョンでは32件の脆弱性が修正されているので注意。深刻度の内訳はMozillaの基準で4段階中最も高い“最高”が3件、2番目に高い“高”が13件、3番目に高い“中”が13件、“低”が3件となっている。

 「Firefox」はWindows/Mac/Linuxなどに対応する寄付歓迎のフリーソフトで、現在MozillaのWebサイトからダウンロード可能。Windows版は窓の杜ライブラリからもダウンロードできる。すでにインストールされている場合は、「Firefox」の更新機能でアップデートすることも可能。