macOSを使っていると、ウィンドウを「消す」方法がいくつもあることに気づきます。⌘+Mで最小化、⌘+Hで隠す、⌘+Wで閉じる、⌘+Qで終了。どれも似たような結果に見えるかもしれませんが、実は技術的に全く異なる処理が行われていて、パフォーマンスへの影響も変わります。
ポイントは、GUIで操作できる「閉じる」や「最小化」はウィンドウ単位の操作で、アプリケーションレベルの操作ではないことです。
2つの終了と2つの非表示
まず、それぞれの操作が何を対象としているかを整理してみましょう。
- Minimize(⌘+M)は特定のウィンドウだけを対象とします。
ウィンドウが画面から消えてDockに小さなサムネイルとして格納されます。アプリケーション自体は動き続けています。 - Hide(⌘+H)はアプリケーション全体を対象とします。
そのアプリのすべてのウィンドウが一度に画面から消えます。アプリケーションは背景で動作を続けています。 - Close(⌘+W)は現在のウィンドウを完全に閉じます。
ウィンドウに関連するデータやプロセスも終了します。ただし、アプリケーション本体は残ります。 - Quit(⌘+Q)はアプリケーション全体を終了します。
すべてのウィンドウが閉じられ、アプリケーションのプロセスも完全に停止します。
「閉じる」と「終了」の違い
Close(⌘+W)- ウィンドウの完全終了
特定の作業が完了したときは、Closeを使います。文書の編集が終わったとき、ブラウザの特定のタブが不要になったときなどです。⌘+Wでそのウィンドウだけを終了できます。
Closeは、ウィンドウを完全に破棄する操作です。ウィンドウオブジェクトがメモリから解放され、関連するリソースも開放されます。
この操作の重要な特徴は、アプリケーションによって動作が異なることです。Safariのような文書ベースのアプリケーションでは、ウィンドウを閉じても他のウィンドウは残ります。しかし、設定アプリやカレンダーアプリのような単一ウィンドウアプリケーションでは、ウィンドウを閉じるとアプリケーション全体が見えなくなります。
テキストエディタで未保存の文書がある場合、保存確認ダイアログが表示されます。これは、ウィンドウの破棄前にデータの整合性を保つためです。
Quit(⌘+Q)- アプリケーションの完全終了
アプリケーション自体が不要になったときは、Quitを選択します。画像編集ソフトでの作業が完全に終わったとき、ゲームを終了するときなどです。⌘+Qでアプリケーション全体を終了し、メモリを解放します。
この処理では、まずすべてのウィンドウが順次閉じられます。各ウィンドウで未保存データがあれば保存確認が行われます。すべてのウィンドウが正常に閉じられた後、アプリケーションのメモリが解放され、プロセスが終了します。
Quitは、アプリケーションのライフサイクルを完全に終了する操作です。NSApplicationのterminate:メソッドが呼ばれ、アプリケーションのメインプロセスが停止します。
バックグラウンドで実行中のタスクがあっても、すべて強制的に停止されます。ダウンロード中のファイルがあれば中断されます。データベース接続があれば切断されます。
「最小化」と「非表示」の違い
Minimize(⌘+M)- ウィンドウレベルの操作
一時的にウィンドウを邪魔に感じるときは、Minimizeが適しています。メールの返信中に資料ウィンドウが邪魔になったとき、⌘+Mで最小化すれば、後で簡単に復帰できます。
Minimizeは、特定のウィンドウオブジェクトの状態を変更する操作です。ウィンドウのisMinimizedプロパティがtrueになり、macOSのWindow Serverがそのウィンドウを画面から取り除きます。
重要なのは、ウィンドウのコンテンツはメモリに保持されることです。Webブラウザでダウンロードを実行中にウィンドウを最小化しても、ダウンロードは継続されます。動画の再生も音声は続きます。これは、アプリケーションのメインプロセスには何の影響もないからです。
ただし、描画処理は停止します。ウィンドウが見えないため、画面更新の必要がなくなるからです。これにより、GPU負荷が軽減されます。
復帰方法は3つあります。Dockのウィンドウサムネイルをクリックする方法、アプリのWindowメニューから選択する方法、そしてMission Control(以前は Expose)から選択する方法です。
Hide(⌘+H)- アプリケーションレベルの操作
アプリ全体を一時的に使わないときは、Hideが効果的です。音楽アプリで作業用BGMを流しながら、他の作業に集中したいときなどです。⌘+Hで隠せば、音楽は流れ続けながら画面がすっきりします。
Hideは、NSApplicationのhide:メソッドを呼び出す操作です。システムレベルでアプリケーション全体の表示状態が制御されます。
Window Serverは、そのアプリケーションのすべてのウィンドウを非表示リストに移動します。アプリケーションの描画処理が完全に停止するため、CPUとGPUリソースの節約効果が高くなります。
特に複数のウィンドウを開いているアプリケーションでは、効果が顕著に現れます。Chromeで10個のタブを開いているとき、⌘+Mでは1つのウィンドウしか最小化されませんが、⌘+Hではすべてのウィンドウが隠れます。
復帰方法は、Dockのアプリアイコンをクリック、⌘+Tabでのアプリ切り替え、またはSpotlightからの再起動です。
パフォーマンスへの影響
メモリ使用量とCPU負荷の観点から、4つの操作を比較してみましょう。
- メモリ使用量では、MinimizeとHideはメモリを保持し続けます。Closeは該当ウィンドウのメモリを解放します。Quitはアプリケーション全体のメモリを解放します。8GBメモリのMacで複数のアプリケーションを使っている場合、適切にQuitを使うことでメモリ不足を回避できます。
- CPU負荷では、MinimizeとHideは描画処理を停止するため負荷が軽減されます。Closeは該当ウィンドウの処理を完全に停止します。Quitはアプリケーションのすべての処理を停止します。
- GPU負荷では、画面に表示されるウィンドウ数が直接影響します。Hideが最も効果的で、次にMinimize、Close、Quitの順になります。
効率的な使い方と注意点
いくつかのアプリケーションでは、標準的な動作と異なる場合があります。
- Finderの特殊性があります。Finderは⌘+Qが無効になっています。macOSの基本機能であるため、完全に終了できません。⌘+Hで隠すことは可能です。
- バックグラウンドアプリの存在も考慮が必要です。Dropbox、Google Drive、メニューバーアプリなどは、ウィンドウを閉じても動作を続けます。これらを完全に停止するには⌘+Qが必要です。
- システムアプリでは、一部の操作が制限される場合があります。システム環境設定やアクティビティモニタなどは、セキュリティ上の理由で特別な終了手順が必要な場合があります。
そのほかの操作を組み合わせることで、より効率的な作業環境を構築できます。
- ⌘+Option+Hという隠れた機能があります。「現在のアプリ以外をすべて隠す」操作で、集中して作業したいときに便利です。複数のアプリケーションが開いている状況で、現在の作業に集中したいときに使います。
- アプリ切り替えとの連携も重要です。⌘+Tabでアプリを切り替えるとき、隠されたアプリケーションは薄く表示されます。これにより、どのアプリが隠されているかを把握できます。
- Dockの活用では、最小化されたウィンドウはサムネイルとして、隠されたアプリケーションは通常のアイコンとして表示されます。この視覚的な違いを理解すると、現在の状態を把握しやすくなります。
まとめ
macOSの4つのウィンドウ操作は、それぞれ異なる技術的な処理を行います。Minimize(⌘+M)はウィンドウレベルでの一時的な非表示、Hide(⌘+H)はアプリケーションレベルでの一時的な非表示、Close(⌘+W)はウィンドウの完全終了、Quit(⌘+Q)はアプリケーションの完全終了です。
適切な操作を選択することで、メモリ使用量の最適化、CPU・GPU負荷の軽減、そして作業効率の向上を実現できます。特に限られたリソースのMacを使っている場合、これらの違いを理解することは重要です。