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
人気の記事
  • Linux その450 - Canonical LXD や MicroCloud にクライアントなりすましの脆弱性・アップデートを
    Canonical LXD や MicroCloud に重大な脆弱性 2026年10月28日、Canonical LXD や MicroCloud に重大な脆弱性がみつかりました。
  • Ubuntu 26.04 その82 - Linux kernel の脆弱性 CVE-2026-98432 の対応状況
    CVE-2026-98432 の対応状況 2026年11月2日、Linux kernel の脆弱性である CVE-2026-98432 の対応状況がアナウンスされました。
  • Linux Mint その294 - Linux Mint 27 の開発とリリース方針の変更・アラーム管理アプリの開発
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Ubuntu 26.04 その78 - eMudhra 認証局の秘密鍵の侵害・アップデートを
    eMudhra 認証局の秘密鍵の侵害 2026年10月20日、eMudhra 認証局(eMudhra CA)の秘密鍵の侵害が発覚しました。
  • Ubuntu 26.04 その79 - CVE-2026-111497 に対応した Brotli のリリース・アップデートを
    Brotli のセキュリティーアップデート 2026年10月26日、CVE-2026-111497 に対応した Brotli がリリースされました。
  • Ubuntu 26.10 その39 - Ubuntu 26.10 の新機能と変更点・既知の問題
    Ubuntu 26.10 の新機能と変更点・既知の問題 リリースノートから、Ubuntu 26.10 の新機能と変更点を紹介します。
  • Ubuntu 26.04 その77 - PHP に php2shell(CVE-2026-109618/CVE-2026-109619)の脆弱性・アップデートを
    PHP に php2shell の脆弱性 PHP に php2shell と呼ばれる致命的な脆弱性が見つかりました。
  • Ubuntu 26.04 その80 - Ubuntu 26.04.2 LTS のリリーススケジュール
    Ubuntu 26.04.2 LTSのリリーススケジュール Ubuntu 26.04.2 LTS のリリーススケジュールを紹介します。
記事のピックアップ
オプション