Mac が重くなり、アプリがビーチボールになり、タブの切り替えも遅い。アクティビティモニタを開くと、Memory Pressure のグラフが黄色または赤になっている。多くの人はまず「どこかでメモリリークが起きている」と考えます。そういう場合もありますが、多くの場合は、複数のアプリ、ブラウザタブ、仮想マシン、バックグラウンド処理が同時に RAM を使い、macOS が本当にメモリ不足に近い状態になっているだけです。
このガイドでは、この 2 つを分けて考えます。メモリプレッシャーはシステム全体の状態です。メモリリークは単一プロセスの挙動です。この違いを理解すれば、アプリを閉じるべきか、ブラウザを再起動するべきか、特定のプロセスを調べるべきか、開発者向けのプロファイラに進むべきかを判断できます。
クイック回答
アクティビティモニタの Memory Pressure が赤いからといって、必ず Mac にメモリリークがあるわけではありません。赤は、macOS が現在のアクティブなメモリ要求を効率よく処理しづらくなり、圧縮メモリやスワップに頼っている可能性が高いことを意味します。
判断の目安は次のとおりです。
- メモリプレッシャーは Mac 全体の状態です。複数の正常なアプリが同時に大量の RAM を使うだけでも黄色や赤になります。
- メモリリークは 1 つのプロセスの問題です。時間とともに増え続け、作業が終わっても安定した基準値に戻りません。
- 赤い場合はまず重いアプリを閉じるべきです。特にブラウザ、Electron アプリ、仮想マシン、デザインツール、動画編集ツールです。
- リークを疑うべきなのは、1 つのプロセスがアイドル中にも増え続ける場合です。
ProcXray を使うと、すべてのプロセスをメモリ順に並べ、Resource History で一時的なピークなのか、正常な高使用量なのか、戻らない増加なのかを確認できます。
macOS のメモリプレッシャーとは
アクティビティモニタの Memory Pressure グラフは、現在の作業負荷に対して Mac のメモリが十分かどうかを見る最も重要な総合指標です。Apple は、このグラフがメモリが処理要求にどれだけ効率よく応えているかを示し、空きメモリ、スワップ率、wired memory、ファイルキャッシュメモリなどから決まると説明しています。
「空きメモリ」よりも色が重要です。
- 緑: メモリ状態は健全です。RAM の大部分が使われていても、効率よく使われています。
- 黄色: メモリに圧力がかかっています。macOS はメモリ圧縮やキャッシュ回収をより積極的に行います。
- 赤: 深刻な圧力です。macOS が RAM と起動ディスクの間でデータをスワップしている可能性が高く、アプリが止まったように感じられます。
つまり「16 GB 中 14 GB 使っている」だけでは問題とは言えません。macOS は空き RAM をキャッシュに使います。空のメモリは無駄だからです。物理メモリのほとんどを使っていても、Memory Pressure が緑なら通常は問題ありません。問題は、安く回収できるメモリが足りなくなり、圧縮やスワップが増えるときに起きます。
メモリプレッシャー vs メモリリーク
数字だけでなく、変化のパターンを見ます。
| シグナル | メモリプレッシャー | メモリリーク |
|---|---|---|
| 範囲 | システム全体 | 1 つのプロセス |
| 典型的な動き | 負荷が高いと突然出る | 時間とともに増え続ける |
| 主な症状 | 黄色/赤、スワップ、ビーチボール | 1 つのアプリや helper が増え続ける |
| アプリを閉じると下がるか | 多くの場合は下がる | リークしているプロセスが終了したときだけ下がる |
| 最初の対応 | 重いアプリやタブを閉じる | プロセスの履歴を見る |
| 向いているツール | アクティビティモニタ | ProcXray の履歴、その後 profiler |
結論: メモリプレッシャーは体感している症状です。メモリリークはその原因の 1 つにすぎません。まず赤いプレッシャーを現在のリソース不足として扱い、その後で 1 つのプロセスが増え続けているかを確認します。
どちらなのかを判断する手順
1. Memory Pressure グラフを見る
アクティビティモニタ → メモリを開き、下部のグラフを見ます。緑なら、Mac が重い原因はメモリではない可能性が高いです。CPU、ディスク、エネルギーを確認してください。
黄色または赤なら次に進みます。
2. メモリ順に並べる
Memory 列をクリックして降順にします。次のような大きな消費元を探します。
- 多数の helper プロセスを持つブラウザ
- Figma、Photoshop、Lightroom、Final Cut Pro、DaVinci Resolve
- Xcode、シミュレータ、
swift-frontend、xcodebuild - Docker Desktop、仮想マシン、データベースサーバ
- Slack、Discord、VS Code、Notion、Teams などの Electron アプリ
複数の大きなアプリを同時に開いているなら、リークではなく通常のメモリプレッシャーである可能性が高いです。
3. スワップと圧縮メモリを見る
メモリペインで Compressed と Swap Used を確認します。圧縮メモリが少しあるのは正常です。重い作業中に少量のスワップがあるのも珍しくありません。問題は、パフォーマンスが悪化し、スワップが増え続け、同じプロセスのメモリも増え続ける場合です。
4. 作業が終わるまで待つ
既知の作業中にプレッシャーが出たなら、作業終了後 5-10 分待ちます。動画書き出し、Xcode ビルド、Docker コンテナ、重い Web アプリの読み込み、大きなドキュメントなどです。
正常な高使用量は、終了後に下がるか安定します。リークは通常戻りません。
5. プロセスのトレンドを見る
アクティビティモニタは現在のスナップショットが中心です。傾向を見るには ProcXray を使います。
- プロセス一覧を Memory で並べ替える。
- 怪しいプロセスを選ぶ。
- History を開く。
- アプリがアイドルの間、メモリ線を観察する。
通常のピークは上がったあと横ばい、または下がります。リークの疑いがある場合は、同じ操作のたびに階段状に増え、古い基準値に戻りません。
6. 怪しいプロセスだけを終了する
候補が見えたら、そのアプリまたは helper だけを終了し、Memory Pressure を見ます。グラフが赤/黄から緑に戻れば、圧力の原因は見つかりました。再起動後に同じプロセスがまた増え続けるなら、再現可能なリーク候補です。
コードレベルの調査に進む場合は、ProcXray で Mac のメモリリークをデバッグする方法 を参照してください。
メモリプレッシャーのよくある原因
ブラウザタブと Web アプリ
Chrome、Safari、Edge、Arc、Brave、Electron アプリは作業を複数の helper プロセスに分けます。1 つのタブが数百 MB から数 GB を保持することもあります。Gmail、Google Docs、Figma、Notion、Slack web、Discord web、ChatGPT、Claude、Microsoft 365 などは長時間大きいままになることがあります。
ブラウザ helper が上位を占める場合は、まずブラウザ内蔵のタスクマネージャを使います。詳しくは Mac で Chrome Helper がメモリを食う場合 を参照してください。
クリエイティブツールと開発ツール
写真編集、動画編集、3D、IDE、シミュレータは大量のメモリを正当に使います。リークかどうかは、プロジェクト、シミュレータ、ドキュメント、書き出しジョブを閉じたあとに下がるかで判断します。
Docker と仮想マシン
Docker Desktop、ローカル Kubernetes、データベースコンテナ、Parallels、VMware、UTM は大きなメモリブロックを予約または消費します。1 つのアプリが異常に見えなくても、Mac 全体が黄色または赤になることがあります。
長い稼働時間
何日も再起動していないと、ブラウザや Electron アプリが helper、キャッシュ、拡張機能の状態を蓄積します。厳密なリークではなくても、アプリや Mac の再起動で改善することがあります。
本当のメモリリークのサイン
- 1 つのプロセスだけが増え続ける。
- アイドル状態になってもメモリが下がらない。
- 同じ操作のたびに増える。ドキュメントを開く、ページを更新する、クエリを実行する、ビューを切り替える、など。
- 無関係なアプリを閉じてもスワップが増え続ける。
- 怪しいプロセスを終了すると圧力がすぐ下がる。
例としては、ブラウザ helper が何時間も増え続ける、Electron アプリがアイドル中にも増える、開発サーバがリクエストごとに増える、ネイティブアプリが UI 操作のたびに増える、といったケースです。
修正手順
1. 明らかに重い作業を閉じる
不要なブラウザタブ、仮想マシン、動画書き出し、シミュレータ、大きなデザインファイルを閉じます。Memory Pressure が緑に戻るか確認します。
2. 怪しいアプリを再起動する
1 つのアプリが大きいがリークとは言い切れない場合は、終了して開き直します。ブラウザ、Electron アプリ、IDE、チャットアプリで特に有効です。
3. タブではなくブラウザ全体を再起動する
タブを閉じても helper が残る場合、ブラウザ全体を再起動します。拡張機能やサービス helper はタブをまたいで残ることがあります。
4. ログイン項目を減らす
ログインのたびにプレッシャーが戻るなら、システム設定 → 一般 → ログイン項目と拡張機能を確認します。不要な起動項目を無効にします。
5. Mac を再起動する
重いアプリを閉じても黄色や赤が続く場合、また作業が終わっても圧縮メモリやスワップが高いままなら再起動します。診断ではありませんが、きれいな基準点になります。
6. 再現する増加はリークとして扱う
同じ操作で毎回増えるなら、プロセス名と PID、操作前後のメモリ、再現手順を記録します。その後、Xcode Instruments、ブラウザ DevTools、Node heap snapshot、Python tracemalloc などに進みます。
ProcXray が役立つところ
アクティビティモニタは「今メモリプレッシャーがあるか」を見るには十分です。しかし「時間の中でどのプロセスが原因だったか」は苦手です。
ProcXray は次を補います。
- プロセス別メモリ並び替えで、アプリ、helper、ビルドツール、バックグラウンド daemon を同じ画面で見られる。
- Resource History で、メモリが一度だけ上がったのか、横ばいになったのか、下がったのか、増え続けたのかが分かる。
- Process Tree で、helper を親アプリの下にまとめて理解できる。
- Command Line で、実際に動いているスクリプト、プロジェクト、コンテナ、renderer、拡張機能を特定できる。
- Open Files と Connections で、メモリ増加がファイルディスクリプタやソケットのリークと関係するかを見られる。
つまり ProcXray はトリアージ層です。深い profiling に進むべきプロセスと、単に重い作業をしているだけのプロセスを分けられます。詳しい比較は ProcXray vs Activity Monitor を参照してください。
FAQ
赤い Memory Pressure は悪い状態ですか?
はい。赤は Mac が現在のメモリ需要を効率よく満たせていないことを示します。リークの証拠ではありませんが、実際の性能問題です。まず重いアプリやタブを閉じ、それから 1 つのプロセスが増え続けていないか確認してください。
macOS のスワップ使用は常に悪いですか?
いいえ。重い作業中に少量のスワップが使われることはあります。問題は、スワップが増え続け、Mac が明らかに遅く、作業終了後も Memory Pressure が黄色または赤のままの場合です。
圧縮メモリは問題ですか?
圧縮メモリは macOS の通常の最適化です。圧縮が多く、スワップも増え、アプリ切り替えや入力が遅い場合に警戒します。数字だけでなく Memory Pressure の色を見てください。
Chrome がメモリリークしているかはどう判断しますか?
Chrome 内蔵のタスクマネージャで最も大きいタブや拡張機能を見つけ、アイドル中にも helper のメモリが増え続けるか確認します。ProcXray は Chrome、Safari、Edge、Arc、Slack などを横断して履歴を見られます。
メモリプレッシャーを直すために Mac を再起動すべきですか?
再起動はすばやく効きますが、原因を隠すことがあります。診断したい場合は、先に大きいプロセスを確認し、増え続けるものがあるか記録してください。
開発者はいつ Instruments や言語 profiler を使うべきですか?
同じアプリやサービスが同じ操作後に増え、基準値に戻らないと確認できたときです。ProcXray はプロセスと再現タイミングを見つけ、Instruments、DevTools、Node heap snapshot、Python tracemalloc はコードパスを見つけます。
参考資料
- Apple Support: View memory usage in Activity Monitor on Mac
- Apple Developer: Memory Usage Performance Guidelines
- ProcXray で Mac のメモリリークをデバッグする方法
- Mac が遅い?リソースを消費するプロセスを見つけて終了する方法
- Mac で Chrome Helper がメモリを食う場合
- ProcXray vs Activity Monitor
ProcXray を無料でダウンロード → — すべてのプロセスをメモリ順に並べ、履歴トレンドを確認し、通常のメモリプレッシャーなのか実際のリークなのかを見分けられます。macOS Sonoma+、Apple Silicon & Intel 対応。