Firefox、ブラウザタブの切り替えをさらに高速化する「Tab Warming」機能を試験実装。マウスホバーの時点でレンダリング開始

2018年1月17日

Mozillaは現在Firefoxの全面的な高速化を実現する「Quantumプロジェクト」に取り組んでいます。Quantumプロジェクトにはサブプロジェクトとして、CSS関連の「Quantum CSS」(別名「Stylo」)、レンダリングエンジン関連の「Quantum Render」、GPU関連の「Quantum Compositor」、DOM関連の「Quantum DOM」、ユーザーインターフェイスなど上記でカバーされない領域を対象とする「Quantum Flow」などがあります。

すでにこのプロジェクトの成果としてFirefox 57以降は「Firefox Quantum」と呼ばれるようになっており、MozillaはFirefox Quantumは従来のFirefoxと比較してベンチマークで2倍高速、使用メモリも減少しているとしています。

Firefox Quantumはベンチマーク「Speedmeter 2.0」で、Firefox 52と比べて2倍以上高速に

ブラウザタブの切り替えをさらに高速に行う「Tab Warming」

MozillaのQuantumプロジェクトは引き続きFirefoxの高速化を推し進めています。その1つとして、ブラウザタブの切り替えをさらに高速化する「Tab Wraming」がFirefoxの開発版であるFirefox Nightlyで実装されたことが話題になっています。

FirefoxをはじめChromeやSafari、Edgeなどの主要なブラウザは「タブ」機能を備えており、タブごとにWebページを表示。タブをクリックすることで表示するWebページを切り替えることができるようになっています。

Tab Warmingとは、このブラウザのタブの切り替え時の新しい実装方法です。

Mike Conley氏によるTab Warmingの解説

MozillaでFirefoxの開発を行っているMike Conley氏は、自身のブログにポストした記事「Making tab switching faster in Firefox with tab warming | Mike Conley's Blog」で、このTab Warmingについて次のように説明しています。

“Tab warming” is what we’re calling the process of pre-emptively rendering the layers for a tab, and pre-emptively uploading them to the compositor, when we’re pretty sure you’re likely to switch to that tab.

“Tab warming”は、タブのレイヤにおけるプリエンプティブリ(先制的)なレンダリングのプロセス、およびそれらをコンポジター(合成子)へプリエンプティブリにアップロードすることとしてます。その実行は、タブが切り替えられるだろうと確実に予見できた時点で行われます。

Tab Warmingのポイントは上記の「確実に予見できた時点で実行」されることにあります。

Firefoxにおいて現時点では、ブラウザタブがクリックされるとイベントが内部プロセスへ送られて、そこからレンダリングが開始されます。

Tab Warmingはそのレンダリング処理を、クリックされなくともクリックが「確実に予見できた時点で実行」するというのです。現時点でそれは、タブの上でマウスがホバーしたこと、とされています(ほかの振る舞いによって判断することも可能だそうです)。

SVGとCSSのアニメーションを用いたWebページで顕著な効果

Conley氏は、Tab Warmingを使わない、つまりタブがクリックされてからレンダリングを開始する現在の実装でも、多くの場合十分に高速だとしています。しかしSVGとCSSを用いたアニメーションなどを含むWebページの切り替えでは、クリックしてから描画されるまでのあいだにディレイを感じるとのこと。

それがTab Warmingの実装によってレンダリングが早く行われるため、すぐに切り替わるようになるとしています。

(Mike Conley氏によるSVGとCSSを用いたアニメーションページの例

Firefox NigylyでTab Warmingが実装されたことで、Tab Warmingについて多くのユーザーからのフィードバックが得られることでしょう。さらに洗練されて正式版でリリースされるでしょうか。

Tags: Web技術 Firefox Mozilla

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly




タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本