Cinnamonでアプリの起動速度の改善
「Cinnamon」でアプリの起動速度が改善されました。この改善は、今年リリースされる「Linux Mint 19」と「LMDE 3」に取り込まれます。
パフォーマンスの計測と調査
開発チームは今年初めから、「Cinnamon」環境のアプリの起動速度に関するパフォーマンスの調査を行ってきました。アプリを起動するためアプリのアイコンをクリックした瞬間から、アプリの画面がスクリーンに描画され、適切にマップされ、マップされたウィンドウのアニメーションが完了するまでの時間を正確に計測するのは難しいことですが、それでも開発チームは皆、「MATE」や「Xfce」の方がパフォーマンスが良いと感じていました。
この時点で開発チームは、それがアニメーションやコンポジションによる感覚的なものなのか、セッションに起動するアプリを登録する機能由来のものなのか、それともそもそもパフォーマンス上の問題なのか、状況を把握できていませんでした。
そこで開発チームは、デスクトップを埋め尽くすぐらい大量のウィンドウを生成するスクリプトを作成しました。
このスクリプトでは、デスクトップ上にウィンドウを200個作成します。
開発チームはこのスクリプトを動かし、200個のウィンドウを生成するのにかかる時間を計測しました。
と同時に、ウィンドウ生成後にウィンドウがデスクトップ上に配置・マップされ、それらのウィンドウが実際に操作可能になるまでの時間も計測しました。
計測結果
その結果、明らかに「Cinnamon」は他のデスクトップ環境に比べ、アプリの起動に時間がかかることが分かりました。「Cinnamon」と「Metacity」を比較すると、以下の結果が得られました。
項目 | Metacity | Cinnamon |
---|---|---|
ウィンドウの生成 | 1秒 | 4秒 |
操作可能になるまでの時間 | 6秒 | 22秒 |
この結果から、開発チームは原因の追求と改善に取り組みました。
原因の切り分け
作業の中で、以下の項目はパフォーマンスに影響しないことが分かりました。- HiDPIのサポート
- 複雑なテーマの適用
- デスクトップ効果やアニメーション
- アプレット及びデスクレット
MuffinとCinnamon
パフォーマンスの課題となっている項目は、他にありました。Muffinに注目
「Muffin」は「Cinnamon」で利用されるライブラリーであり、ウィンドウマネージャーを実装しています。「Muffin」は「Cinnamon」なしに単独で実行することができます。
開発チームは「Muffin」の計測を行い、「Cinnamon」よりもパフォーマンスが良いが、「Metacity」よりもパフォーマンスが良くないことを発見しました。
そのため「Muffin」と「Cinnamon」にパフォーマンスの課題があることが分かりました。
MuffinとCinnamonの改善
「Muffin」では、アップストリームの「GNOME」で適用されている2種類のコミットから修正を取り込みました。この修正はパフォーマンスの課題を大きく改善します。
「Cinnamon」では、ボトルネックとなっていた4種類の修正(コミット)をウィンドウリストとパネルランチャーに盛り込みました。
この修正に関する詳細は、以下を参照してください。
これらの修正により、「Metacity」と同等のパフォーマンスを得られるようになりました。
ウィンドウアニメーションの改善
この作業の過程で開発チームは、ウィンドウアニメーションの改善にも取り組んでいます。上記で紹介したようにウィンドウアニメーションは、パフォーマンスの課題とは関係ありません。
しかしウィンドウアニメーションは、ユーザーのパフォーマンスの良し悪しの感覚に影響を与えます。
新しいアニメーションではより洗練された視覚を提供し、今までの「Cinnamon」よりもパフォーマンスが改善された感覚を体験できるでしょう。