Snap版Firefoxの起動時間が大幅に短縮される
前回も紹介したようにSnap版Firefoxのパフォーマンス改善作業が引き続き行われています。前回の取り組み内容
以前紹介した内容は、以下を参照してください。起動時間の大幅な改善
Snap版Firefoxのパフォーマンスにおける大きな課題の1つが、コールドスタート時にFirefoxの起動に時間がかかることです。今回この課題が大幅に改善され、例えば新規インストール時の起動時間を「Firefox 101」と比較すると平均で50%高速化されました。
すでに「Snap Store」でリリースされている最新版のFirefoxでは、この改善が盛り込まれています。
何を変えたのか
今回の改善にあたり実施した内容を紹介します。1.言語パック処理の最適化
Firefoxの初回起動時、Firefoxに同梱されている拡張機能はすべてユーザー固有のディレクトリーにコピーされます。Snap版Firefoxでは98種の言語パックを同梱しているため、これらのコピーに時間がかかります。
しかし通常ユーザーは日本語ユーザーなら日本語のみを利用するなど、1種類の言語しか利用しません。
これを踏まえシステム設定に基づいて1種類の言語パックのみ読み込むように修正されました。
2.GNOME及びGTKテーマSnapsの圧縮アルゴリズム変更
以前Snap版Firefoxの圧縮アルゴリズムがLZOに変更され、これにより起動時間が改善されました。これに加えSnap版Firefoxが依存している「gnome-3-38-2004」及び「gtk-common-theme」の圧縮アルゴリズムもXZからLZOに変更され、起動時間がさらに短縮されました。
ちなみにこれらのSnapsは「Chromium」や「Thunderbird」といった他のSnapアプリからも利用されるため、それらを利用するSnapアプリの起動時間の短縮にもつながっています。
改善作業はまだ続く
パフォーマンスの改善作業はまだ続きます。現状以下の調査が行われています。
1.マルチスレッドによる展開
Snapsは圧縮されており、アプリ利用時にまず圧縮アーカイブを展開する必要があります。現在はシングルスレッドで展開処理を行っていますが、これをマルチスレッドで処理することでパフォーマンスを改善できないか調査が行われています。
2.ソフトウェアレンダリングになる問題
「Raspberry Pi」でFirefoxが使用するGPUドライバーを適切に検出できず、ソフトウェアレンダリングになってしまう問題がまだ残っています。前回紹介したように問題を改善するための修正が行われたとはいえ、まだ完全には解決していません。
加えてこの問題はSnap版だけでなくdeb版Firefoxでも発生しており、以下で調査が行われています。
3.プリキャッシュ
ユーザーが毎回利用するようなソフトウェアを事前にすぐに利用できる状態にしておき、アプリの起動時間やロード時間を短縮する仕組みです。様々なSnapアプリから利用されるGNOMEコンテンツSnapをプリキャッシングしておき、パフォーマンスの改善に役立てられないか調査が行われています。