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

Linux その85 - GNOME Softwareの起動時間改善・起動時間が約半分に

GNOME Softwareの起動時間改善

「GNOME 40」の「GNOME Software」は起動時間が改善され、今までの約半分の時間で起動するようになりました。


  • GNOME Software performance in GNOME 40

libxmlb周りのプロファイリング

開発者は「GNOME Software」が使用している「libxmlb」周りの処理に焦点をあて、プロファイリングを実施しました。
プロファイリングにより、どの処理に大きなコストがかかっているのかを視覚化できます。

AppStreamからアプリの情報を取得

「GNOME Software」はUIに表示するアプリの情報を「AppStream」から取得しています。

  • AppStream

「GNOME Software」は「AppStream」のデータに対しクエリー(問い合わせ)を行い、様々なアプリの情報(メタデータ)を取得しています。
しかし「AppStream」はアプリの情報をXMLファイルで提供しており、直接XMLに対してクエリーを実行すると処理に大きなコストがかかります。

そこで「GNOME Software」は「libxmlb」を利用してXMLファイルからキャッシュを構築し、XMLのクエリーを高速化しています。

  • libxmlb

「GNOME Software」は「libxmlb」を経由してそのキャッシュからアプリの情報を取得することになります。
もちろん「AppStream」のデータが変更されれば、キャッシュもアップデートする必要があります。

起動時、大量のクエリーを実行する

さて「GNOME Software」は起動時、多くのアプリをユーザーに表示するため大量のXMLクエリーを実行し、アプリの表示に必要な情報を読み込んでいます。
起動時間を短縮する方法の1つに、クエリーの実行数を減らす方法があります。
この種の最適化はすでに過去に実施されており、同種のさらなる最適化は難しそうです。

クエリー速度の向上

そこで今回クエリーの実行速度そのものを向上させる方法に着目し、クエリーの最適化が実施されました。
クエリー実行時に今までヒープに割り当てていた処理をスタックに割り当てることで、メモリー周りの処理コストを削減しています。


起動時間が半分に

クエリー処理を見直した結果、キャッシュが変更されてから「GNOME Software」を初めて起動する際、「GNOME Software」の起動にかかる時間が今までの約半分に短縮されました。
開発者のテストでは、最適化する前は「GNOME Software」の起動に25秒かかっていましたが、この時間が12秒に短縮されました。(-52%)

キャッシュは日々1、2回変更される可能性があり、このケースは「GNOME Software」においてよくあるケースであるとのことです。

Linux
スポンサー
コメント
コメントポリシー
コメントをする前に 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 のリリーススケジュールを紹介します。
  • Linux その414 - KDE Plasma で実装予定の新機能や改善・絵文字の表示サイズを変更機能やディスプレイ設定画面の改善など
    KDE Plasma で実装予定の新機能や改善 2026年8月1日、KDE Plasma で実装予定の新機能や改善が以下で紹介されました。
  • Linux その412 - KDE 環境で大量のファイルコピー時に、ファイル処理のパフォーマンスが大幅に向上
    ファイル処理のパフォーマンスが大幅に向上 KDE 環境で大量のファイルをコピーする時に、ファイル処理のパフォーマンスが大幅に向上しました。
  • Linux その413 - GNOME 向けアプリとアップデートの紹介・カラーピッカーやメディアプレーヤーなど
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 24.04 その93 - Linux kernel 7.0 が利用可能に・Linux kernel 7.0 にアップグレードするには
    Linux kernel 7.0 が利用可能に 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Linux kernel 7.0 へアップグレードできるようになりました。
  • Lubuntu その28 - Lubuntu 26.04 LTS の新機能と変更点・既知の問題
    Lubuntu 26.04 LTS の新機能と変更点 リリースノートから Lubuntu 26.04 LTS の新機能と変更点を紹介します。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Linux その411 - KDE Plasma で実装予定の新機能や改善・セッションの自動ロックや kscreenctl ツールなど
    KDE Plasma で実装予定の新機能や改善 2026年7月25日、KDE Plasma で実装予定の新機能や改善が以下で紹介されました。
記事のピックアップ
オプション