ソフトウェア

Firefoxは過去6カ月間でどのようなパフォーマンス改善に取り組んできたのか?


Firefoxを開発するMozillaが、「過去6カ月間でどのようなパフォーマンス改善を行ってきたか」というレポートを公開しました。Firefoxのデスクトップアイコンをクリックしてからブラウザが表示されるまでの時間を大幅に短縮したほか、「ウェブページがブラウザの速度を低下させている」という通知を明確にする処理などが行われています。

Performance in progress – Mozilla Performance
https://blog.mozilla.org/performance/2021/08/05/performance-in-progress/

◆Firefoxの起動について
まずMozillaでは「WindowsでFirefoxを起動する際、アイコンをクリックしてもFirefoxが反応しているように見えず、何度もクリックを繰り返して最終的に大量のブラウザが起動してしまう」という問題に対応しているとのこと。この問題を解決するためにMozillaのエンジニアであるDoug Thayer氏とEmma Malysz氏は「スケルトンUI」を利用しました。


そもそもFirefoxの起動に時間がかかるのは、Firefoxの起動に多くの処理が必要であるため。Mozillaは以下の図を使って、ブラウザが表示される前に「ランチャープロセス」「XUL.dllの読み込み」「プロファイルのロード・JSエンジンの開始」などが行われることを示しています。


ウィンドウのサイズや位置を決めるためにはプロファイルのロードやJSエンジンの開始が必要です。またディスクからXUL.dllを読み込むには時間がかかりますが、コンピューターの処理速度が遅いと、この読み込み時間も長くなります。

スケルトンUIを利用することで、Firefoxで行われる処理自体はそのままに、ブラウザが表示されるタイミングが変更されます。これにより、クリック直後にブラウザが表示され、「Firefoxは反応している」ということが示せるわけです。


以下のムービーでは従来のFirefox(左)とスケルトンUIを採用したFirefox(右)が起動する様子を見ることが可能。最終的にブラウザ上にコンテンツが表示されるタイミングは同じですが、クリックしてからブラウザが表示されるまでの時間が大幅に短縮されているのが見てとれます。これにより「Firefoxが反応していない」と勘違いして何度もアイコンをクリックしてしまう事態が防げるわけです。

Firefox Skeleton UI Demo - YouTube


なお、スケルトンUIはFirefox 92ベータ版で利用可能になる予定とのこと。

◆「ウェブページがブラウザの速度を低下させている」の通知
また、これまでFirefoxでは特定の時間的なしきい値を超えて動作するスクリプトを有するページを開くと、「ウェブページがブラウザの速度を低下させている」と表示されていました


しかし、この通知がブラウザ上で開いているどのページに対するものなのかや、次にとるべきステップが不明確だという苦情が寄せられていたとのこと。そこで、Doug Thayer氏とEmma Malysz氏は表示の原因となっているページのタイトルを通知に含めると共に、ユーザーが迷わなくてもよいように選択肢のボタンを「Stop(停止)」のみにしました。


この変更によりユーザーが速やかに「停止」ボタンを押せるようになり、ユーザーが処理を保留して何度も通知が送られるという事態が減少した模様。実際に、実装してからというもの、送信される通知の数が50%減少したそうです。

◆セキュリティ
Mozillaは、市場に出回るCPUのハードウェアレベルに潜む脆弱性「Spectre」と「Meltdown」に対応するため、2021年5月に「Fission(サイト隔離)」という機能を発表しました。

Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE


Fissionを利用しないこれまでのブラウザでは、ユーザーが有害なウェブサイトにアクセスしたときに、そのウェブサイトとは異なる銀行などのログイン情報も抜き出される恐れがありました。しかし、Fissionではそれぞれのウェブサイトが個別に処理されることになり、攻撃者が有害なウェブサイト以外のウェブサイトの情報にアクセスできなくなります。

加えてFissionは個々のプロセスでサイトが処理されるので、「重いサイトを開いても他のページの応答性が低下しない」「あるタブがクラッシュしても、他のプロセスで処理されているページが影響を受けない」「サイトの読み込みに複数のプロセスを使うので、作業がより多くのCPUコアに分散され、ハードウェアの性能をより効率的に使用できる」といった副次的なメリットも報告されています。


MozillaはFissionの改善を続けており、NSSライブラリの初期化やHTTP Acceptに関するプロセス切り替え処理が、Windows上の複数のページで改善されたとのこと。プロセス切り替えにかかる時間はこれまで20~40ミリ秒でしたが、6~8ミリ秒にまで短縮されたそうです。

この他、Firefox 89で特定イベントの待機時間についての洞察を提供する「Performance Event Timing API」と呼ばれるAPIが有効になったことなども報告されています。

この記事のタイトルとURLをコピーする

・関連記事
使いこなせばインターネットの達人になれる「Firefoxの秘密の便利機能11選」をMozillaが解説 - GIGAZINE

Firefoxがウェブの未来のために戦う理由とは? - GIGAZINE

Mozillaが開発するレンダリングエンジン「Servo」をLinux Foundationが引き継ぐことに - GIGAZINE

Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE

in ソフトウェア, Posted by logq_fa

You can read the machine translated English article here.