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

Ubuntu 20.04 その42 - Canonicalが取り組んできたGNOME Shellのパフォーマンス改良作業

Canonicalが取り組んできたGNOME Shellのパフォーマンス改良作業

「Canonical」が「Ubuntu 20.04 LTS」で取り組んだ「GNOME Shell」のパフォーマンス改良作業が、以下で紹介されています。


  • GNOME Shell Performance Improvements in Ubuntu 20.04

ユーザーが体感できるパフォーマンスの向上

「Ubuntu 20.04 LTS」では、パフォーマンスが改良された「GNOME Shell 3.36」が採用されています。

以前から「Ubuntu」を利用してきたユーザーから見れば、「Ubuntu 20.04 LTS」の「GNOME Shell」は体感できるレベルでパフォーマンスが向上しています。
描画や動作のスムーズさや応答性の向上は、すべてのユーザーにとって大きな価値のある改良です。
さてこの背景には「Canonical」のエンジニアによる多大な取り組みがありました。

継続的に行われてきたパフォーマンスの改良作業

「GNOME Shell」のパフォーマンス改良作業は、以前から継続的に取り組まれてきました。
例えば「Ubuntu 19.04」で行われた改良作業は、以下で紹介されています。

  • GNOME 3.32 performance (Ubuntu 19.04)

また「Ubuntu 19.10」で行われた改良作業は、以下で紹介されています。

  • Boosting the Real Time Performance of Gnome Shell 3.34 in Ubuntu 19.10

Ubuntu 20.04 LTSで行われた改良作業

そして「Ubuntu 20.04 LTS」では、更なる改良作業が行われました。
「Ubuntu 20.04 LTS」で行われた改良作業の紹介です。

1.すべてのアニメーションの改善と遅延の低減

フレームスキップが起きていない状態でアニメーションが行われても、スムーズにアニメーションが行われていないように見えるケースがありました。
同期の間隔を厳密に合わせることで、アニメーションの滑らかさが改善されました。

  • Sync timelines to hardware vsync

またアプリのウィンドウをマウスでドラッグする際、ウィンドウの移動がマウスの移動に遅れることなく、きれいに追従するようになりました。

2.ディスプレイスケーリング時のメモリー使用量削減

ディスプレイのスケーリング時に、必要以上のメモリーの確保とデータの保存処理が行われていました。
この問題が解消され、実行時のパフォーマンス向上に繋がっています。

  • background: Scale monitor_area after texture creation

しかしこの問題と同種の実装が他で行われている可能性を考慮し、ディスプレイのスケーリング時にパフォーマンスに影響を与えている箇所が他にないか、継続的に調査が行われます。

3.マウスカーソルの移動時にJavaScriptを呼び出さないように修正

マウスやタッチパッドでマウスカーソルを移動した時に、JavaScriptを実行しないように修正されました。

  • js/ui: Subscribe touchpad gesture handlers to only touchpad events [performance]

JavaScriptを実行しても特別それがひどく遅いというわけではありませんが、JavaScriptを実行しないほうが当然パフォーマンスは好ましくなります。
この修正によりCPUとバッテリーの使用量が削減され、パフォーマンスが向上します。

4.アイコングリッドを開く・閉じる時の応答性向上

JavaScriptの同時実行時の処理が見直され、アイコングリッドを開く・閉じる時の応答性が向上しました。

  • iconGrid: Create icon clones in a separate loop

5.ウィンドウのスライドアニメーションの改善

GUI要素の再配置では、すべてのGUI要素のサイズと位置を把握する必要があります。
この処理をJavaScriptで実行する場合、C言語で記述されたコードと比較すると、相応のコストが掛かります。

「Super」キーを押した時などウィンドウのスライドアニメーションを実行する時に、実際にJavaScriptの実行が必要な箇所を絞ることでCPU使用量が削減され、またアニメーションがスムーズに描画されるようになりました。

  • workspace: Animate window clones using translation properties

6.アイコンのアニメーションがスムーズに

「5.」と同じ方針で修正が行われ、アイコンのアニメーションがスムーズになりました。
元々アイコンのアニメーション改善は「Ubuntu 19.10」で行われた改善ですが、それをさらに「5.」と同じ手法を用い改善しています。

  • iconGrid.js: Animate icon spring using translation [performance]

7.再レイアウトがより効率的に

GUI要素を再配置する際、GUI要素の親子関係で言う祖先にあたる要素が関与しないのであれば、関与せずに処理を実行できるようになりました。
この改善は直接的にパフォーマンスを向上させる改善ではありませんが、将来的にパフォーマンスの課題を解決する方法として活用できます。

  • Honour `CLUTTER_ACTOR_NO_LAYOUT` more efficiently

8.スクリーンの分割描画パフォーマンスの向上

スクリーンの複数の描画を1つに結合し一括して描画する代わりに、スクリーンを個別に描画する機能があります。
この描画対象数が増えた時にパフォーマンスが低下する問題がありましたが、この問題が改善されパフォーマンスが向上しました。

  • Batch clip rectangles into a single upload

9.GJSの不具合修正とパフォーマンスの向上

「GNOME Shell」とJavaScriptエンジンを繋ぐ「GJS」に、アニメーション実行中に何度も同じコードが実行される不具合があり、この不具合が修正されました。

  • gnome-shell spends a lot of its CPU time re-resolving the same properties [performance]

また「Canonical」は以下の不具合を見つけ、最終的に解決へと導いています。
これもパフォーマンスの向上に寄与する修正です。

  • object: Cache known unresolvable properties

それでもまだGNOME Shellは重い?遅い?

まだ「GNOME Shell」に課題があることを「Canonical」は認識しています。
これらの課題は今後も継続的に解消に向けて取り組まれていきます。

パフォーマンス上の課題を見つけたら

とは言えユーザーが直面しているすべての課題を「Canonical」が把握しているわけではありません。
もし「GNOME Shell」にパフォーマンス上の課題を見つけたならば、以下のコマンドを実行し不具合を報告してください。

ubuntu-bug gnome-shell

というわけで

「Ubuntu」が「GNOME」に移行してから2年以上経ちますが、移行時にユーザーから寄せられた「重い」「遅い」といったネガティブな反応に対応すべく、「Canonical」は継続的に「GNOME Shell」の改良に取り組み続けてきました。
そして「Canonical」は数々の不具合を修正してきました。 
その取り組みは今後も継続的に行われていきます。

「Ubuntu」が「GNOME」に移行した時に「GNOME」に対してネガティブな印象を持ったユーザーは、これを機にもう一度「Ubuntu(GNOME)」を試してみてはいかがでしょうか。

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 のリリーススケジュールを紹介します。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
記事のピックアップ
オプション