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

Ubuntu 20.10 その22 - パッケージの圧縮形式の変更によるSnapアプリの大幅な起動時間短縮

Snapアプリの大幅な起動時間短縮

「Snap」はアプリケーションをパッケージングし、隔離された環境でアプリを実行する仕組みを提供します。


  • Snap speed improvements with new compression algorithm!

特定のLinuxディストリビューションに依存しない

特定のLinuxディストリビューションに依存せず、様々なLinuxディストリビューションで「Snap」及び「Snap」で提供されるアプリを利用できます。
いわゆるアプリケーションコンテナですね。


この仕組みにより開発者は様々なLinuxディストリビューションにアプリを横断的に提供でき、そしてユーザーは自身が利用しているLinuxディストリビューションに捕らわれることなくアプリを利用できます。

コンテナならではの課題

「Snap」が持つ課題の一つは、リソースの共有が限られるため、メモリーやディスク使用量が増大したり、ネイティブに動作するアプリよりも余計に起動時間がかかってしまうことです。
もちろん「Snap」にはそれ以上の利点もありますが、debやRPMパッケージで提供されるネイティブアプリよりもリソースの使用量は増加傾向にあります。

「Snap」でもユーザーからアプリの起動に時間がかかるとのフィードバックが数多く寄せられています。
この課題は開発者が何年もの間認識している課題であり、日々改善や解決に向けて取り組んでいる課題です。

  • Snapアプリケーションの起動時間短縮

Snapパッケージのインストールと展開

「Snap」では、アプリやアプリの動作に必要なソフトウェアを一つにまとめてパッケージとしてアプリを提供しています。
(インターフェースによるソフトウェアの共有も可能ですが、ここでは扱いません。)
ユーザーがアプリをインストールするとSnapパッケージがインストールされます。


そしてその中身が「/snap」に展開(マウント)されます。


マウント状況を確認すると、以下のようにパッケージが「/snap」にマウントされていることが分かります。


パッケージはSquashFS

パッケージは「SquashFS」であり、これは読み取り専用の圧縮されたファイルシステムになっています。


  • SquashFS

「Snap」の「SquashFS」ではデフォルトの圧縮アルゴリズムに「XZ」を採用しています。
「XZ」の高い圧縮率によりパッケージサイズを削減していますが、ファイルシステムの展開時には相応の処理コストが掛かります。

アプリの起動時間に影響を与える

ファイルシステムの展開はアプリの起動時間に影響を与えるため、ユーザーによってはこれが原因でアプリの起動が遅く感じられることがあります。

特にアプリがメモリ上にキャッシュされていない状態で起動する場合(コールドスタート)、この傾向が顕著になります。
逆にアプリがメモリ上にキャッシュされている状態で起動する場合(ホットスタート)、ネイティブアプリとの起動時間の差はほとんどありません。

圧縮形式の変更による起動時間の改善

そこで圧縮アルゴリズムの変更が検討され、「LZO」の採用とテストが実施されました。
「LZO」の採用により圧縮率が下がるため、パッケージサイズは増大します。
その一方でファイルシステムの展開にかかる時間が削減されるため、アプリの起動時間が短縮されます。

起動時間が2倍から3倍早くなった

テストではSnap版「Chromium」が使用され、パッケージサイズと起動時間のテストが実施されました。
パッケージサイズは「XZ」で約150MBでしたが、「LZO」では約250MBに増大しています。

コールドスタート時の起動時間の比較では、「XZ」に比べ「LZO」では約2倍から3倍早くなっています。
ネイティブアプリとの起動時間を比較しても、それほど遜色ない差になっています。

またホットスタートでは元々ネイティブアプリとの起動時間の差はほとんどありませんし、「XZ」と「LZO」を比べても大した差はありません。

今後も改善は続く

「Snap」に対する改善はこれで終わりではありません。
今後も継続的に改良や最適化が行われていきます。

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu CPUfreq その1 - CPUfreqについて・ CPUfreqドライバーについて・ CPUfreqガバナーについて
    CPUfreq   CPUfreqは、CPUのクロック数を動的に変更する機能です。   CPUfreqを利用することで、OSの負荷に応じて動的にCPUのクロック数を調整することができます。  これにより、省電力効果を得ることができます。   CPUfreqを利用する場合...
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 24.04 その93 - Linux kernel 7.0 が利用可能に・Linux kernel 7.0 にアップグレードするには
    Linux kernel 7.0 が利用可能に 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Linux kernel 7.0 へアップグレードできるようになりました。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 26.04 その59 - amdgpu ドライバーでパフォーマンス低下のお知らせ
    amdgpu ドライバーでパフォーマンス低下のお知らせ 次期 Linux kernel のアップデートで、amdgpu ドライバーのパフォーマンスが低下するお知らせが出ています。
  • Linux Mint その120 - Linux Mint 19.2のTipsとトラブルシューティング
    Linux Mint 19.2のTipsとトラブルシューティング リリースノートから「Linux Mint 19.2」のTipsとトラブルシューティングを紹介します。
  • Ubuntu 26.04 その56 - amdgpu ドライバーでシステムがフリーズする現象
    amdgpu ドライバーでシステムがフリーズする現象 amdgpu ドライバーでシステムがフリーズする現象が報告されています。
  • Linux その402 - KDE Plasma で実装予定の新機能や改善・録音オプションの追加や VRAM の使用量表示など
    KDE Plasma で実装予定の新機能や改善 2026年7月11日、KDE Plasma で実装予定の新機能や改善が以下で紹介されました。
  • Linux Mint その291 - 次期バージョンで Wayland セッションの提供・Cinnamon の改良など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その407 - COSMIC DE 開発7ヶ月の歩み・COSMIC DE に搭載された新機能のまとめ
    COSMIC DE 開発7ヶ月の歩み COSMIC デスクトップ環境の開発者が、ここ7ヶ月の開発の歩みと、今までに COSMIC デスクトップ環境に搭載された新機能を紹介しています。
記事のピックアップ
オプション