kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 22.04 その165 - Snap版Firefoxのパフォーマンス改善に向けた取り組み

Snap版Firefoxのパフォーマンス改善に向けた取り組み

Snap版「Firefox」の起動時間含むパフォーマンスの改善に向けた取り組みが行われています。


  • How are we improving Firefox snap performance? Part 1

Snap版Firefoxに切り替わった

「Ubuntu 21.10」でデフォルトのブラウザーがdeb版「Firefox」からSnap版「Firefox」に切り替わりました。

  • deb版FirefoxからSnap版Firefoxへの移行・Snap版Firefoxがデフォルトに

Snap版「Firefox」に移行することで「Mozilla」は直接Ubuntuユーザーに「Firefox」を提供できるようになりました。
と同時にSnapは特定のLinuxディストリビューションに依存しないため、「Mozilla」は41のLinuxディストリビューションに直接「Firefox」を提供できます。

「Ubuntu 22.04 LTS」でも「Ubuntu 21.10」と同様にデフォルトのブラウザーにSnap版「Firefox」を採用しています。

起動に時間がかかる

Snap版「Firefox」に限った話ではありませんが、Snapアプリはdebアプリに比べ起動時間が長くなる傾向にあります。
もちろんアプリの種類やアプリが起動する状況に応じその程度には差がありますが、特にPCの起動直後のようにアプリがキャッシュされていない状況でSnapアプリを起動すると、起動時間に大きな差が出やすくなります。

Snap版Firefoxのパフォーマンスを改善していきたい

CanonicalはSnap及びSnapアプリの起動時間を含むパフォーマンスの改善に何年も前から継続的に取り組んできました。
そしてここでも何度か紹介していますが実際に改善作業が行われています。

しかしユーザーから見るとそれでも起動時間の遅さに目が行くでしょう。
Snap版「Firefox」に関してはまずは起動時間(コールドスタート)の改善に焦点があてられています。

どのハードウェアが一番影響を与えるのか

ハードウェアの面から見ればSnapアプリの起動時間に一番影響を与えうるハードウェアは、ストレージです。
Snapアプリは圧縮されたイメージとして提供されるため、ディスクI/Oの速さは重要です。
NVMe SSDのような高速なストレージを搭載しているPCでは、特にHDDと比較するとSnapアプリでも明らかに起動時間は短くなります。
また圧縮されたデータを展開するため、CPUの性能も大切です。

3つの性能指標

パフォーマンスの計測や改善にあたり、3種類の性能指標が立てられました。

1.コールドスタート

アプリに必要なデータやファイル群がメモリー上にキャッシュされていない状態でアプリを起動するケースです。
PC起動後に初めて「Firefox」を起動するケースがこれにあたります。

またアプリインストール後初めてアプリを起動する場合、ユーザーデータの生成など一度だけ実行される処理があります。
例えば「Firefox」ではユーザープロファイルの生成処理が行われます。
パフォーマンスを計測する際この状況をコールドパージと表現しています。
コールドパージが一番アプリの起動時間がかかるケースになります。

2.ウォームスタート

アプリに必要なデータやファイル群がメモリー上にキャッシュされている状態でアプリを起動するケースです。
ログイン後2回目以降に「Firefox」を起動するケースがこれにあたります。
アプリがキャッシュされているため、非常に高速にアプリが起動します。

3.ランタイム

アプリ実行中のアプリのパフォーマンスです。

パフォーマンスの計測

Snap版「Firefox」の起動時に関するパフォーマンスが計測されました。

ケース Dell XPS 13(2019) Thinkpad X240 Raspberry Pi 400
(SDカード)
コールドパージ 7.67 秒 15.07 秒 38.23 秒
コールドスタート 3.09 秒 15.16 秒 22.92 秒
ウォームスタート 0.86 秒 1.39 秒 8.11 秒

特に「Raspberry Pi 400」では起動に時間がかかりますね。

パフォーマンスの改善点

さて上記だけでなく様々な観点からパフォーマンスの計測や調査が行われました。
その結果に基づきコールドスタートを改善するため、課題や調査事項がピックアップされました。

1.squashfsのシーク性能改善

Snapアプリは圧縮されたsquashfsで提供されるため、特に「Raspberry Pi」のようなハードウェアリソースに制限がある環境では、ボトルネックになります。
「Firefox」は起動時にsquashfs内のファイルを検索するため、大量のディスクI/Oが発生します。
squashfsに収めるコンテンツの順番を最適化することで、このシークタイムを改善できないか調査が行われています。

2.ソフトウェアレンダリング

現在のSnap版「Firefox」では、「Raspberry Pi」で「glxtest」で使用するGPUドライバーの検出がうまくいかないケースがあります。
「Firefox」がソフトウェアレンダリングで起動する場合、シェーダーのコンパイルに大きな時間がかかります。
「AMD GPU」でもこの現象が確認されています。
しかしこの問題はSnapで修正されたため、今後のアップデートで改善されるでしょう。

  • interfaces/opengl: update allowed PCI accesses for RPi

3.拡張機能の処理

「Firefox」の初回起動時、「Firefox」に同梱されている拡張機能はすべてユーザー固有のディレクトリーにコピーされます。
Snap版「Firefox」では98種の言語パックを同梱しているため、これらのコピーに時間がかかります。
またこれらの言語パックは圧縮されたsquashfs内にありそこから読み込まれるため、起動時間に影響を与えています。

4.フォントとアイコンの処理

利用可能なすべてのアイコンテーマやフォント及びフォント設定の検出に時間がかかっています。

その他の改善

Snap版「Firefox」ではコールドスタート以外の改善作業も行われています。

1.ランタイムパフォーマンスの改善

「Firefox 100.0」からPGOとLTOが有効になりました。

  • Profile-guided optimization(PGO)
  • LinkTimeOptimization(LTO)

これによりランタイムパフォーマンスが有意に改善されています。
また起動時間の短縮にも多少貢献しています。

2.ネイティブメッセージ

ネイティブメッセージのサポート作業が行われています。
これにより2要素認証(2FA)デバイスのサポートやGNOME Shell拡張のサポートが有効になります。

  • webextensions: add a portal for managing WebExtensions native messaging servers

来月にもこの機能に対応した「Firefox」が登場する予定です。

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Ubuntu 24.04 その96 - Ubuntu 24.04.5 LTS のリリース日変更
    Ubuntu 24.04.5 LTS のリリース日変更 Ubuntu 24.04.5 LTS のリリース日が変更されました。
  • Linux その426 - GNOME 向けアプリとアップデートの紹介・AI アシスタントアプリやメールスイートなど
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
  • Linux その429 - GNOME 向けアプリとアップデートの紹介・ RSS リーダーのインポート機能や映画マトリックスのデスクトップ効果など
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
記事のピックアップ
オプション