ブログに戻る

MacでChrome Helperがメモリを食う:背後のタブや拡張機能を特定する方法

Activity Monitorに「Google Chrome Helper」が8つ並んでそれぞれ数GBずつメモリを食っている?「Safari Web Content」でも同じ?各Helperは1つのタブ・クロスサイトフレーム・拡張機能・ブラウザサービスのいずれかを保持しています — 正しいものを見極めて閉じる方法を解説します。

Macのメモリが足りなく感じてActivity Monitorを開くと、「メモリ」タブがGoogle Chrome Helper (Renderer)という名前のエントリで埋まっている — 8つ、12個、ときに20個、それぞれが500 MBから2 GBを食っている。あるいはSafariでも、Safari Web Contentの下に同じ光景が広がっている。適当に終了させると、ちょうど使っていたタブまで失う羽目になります。本ガイドでは、現代のブラウザがなぜ数十ものHelperプロセスを動かすのかを説明し、そして — より重要なことに — 特定のHelperを、それが表しているタブ・サイト・拡張機能へどう逆引きするかを解説します。

結論から言うと

現代のブラウザはマルチプロセスアーキテクチャを採用しています:UI用のメインプロセスと、タブごと、タブ内のクロスサイトiframeごと、拡張機能ごと、それにブラウザ全体のサービス(GPU、ネットワーク)にもそれぞれ独立したHelperプロセスです。だからGoogle Chrome Helper (Renderer)が1.5 GBになっていてもバグではありません — それは1つのタブ、1つのクロスサイトフレーム、1つの拡張機能、または1つのブラウザサービスが1.5 GBを使っているということです。Safari Web ContentMicrosoft Edge HelperArc HelperBrave Browser Helperなども同じです。高メモリ消費は、たいてい重いWebアプリ(Gmail、Google Docs、Figma、Slack web、ChatGPT、Claude)、忘れていたストリーミング動画/WebGLのタブ、あるいはメモリリークのある拡張機能から来ます。

犯人を特定する最速の手順:

  1. Chrome / Edge / Arc / Brave / Vivaldi / Opera の場合ウインドウメニュー → タスクマネージャからブラウザ内蔵のタスクマネージャを開きます(一部のChromium系ブラウザではメインメニュー → その他のツール → タスクマネージャからも開けます)。Shift+EscのショートカットはWindows / Linuxでは機能しますが、macOSでは不安定なのでメニュー経由で開いてください。すべてのタブと拡張機能がタブのタイトルや拡張機能名つきで、メモリ順に並びます。プロセスをタブのタイトルに直接マップできるmacOSの内蔵ツールはこれだけです。
  2. Safari の場合:相当する「タブごとのタスクマネージャ」はありません。macOS純正のアクティビティモニタ → メモリタブで Safari Web Content のエントリを見ます — 重いものが存在することは確認できますが、どれがどのタブかはそこからは分かりません。タブを一つずつ閉じていくのが実用的な代替策です。
  3. 複数のブラウザを同時に比較したい、または数時間にわたって積み上がったリークを特定したい場合ProcXrayはすべてのブラウザのプロセスをメモリ順に1つのビューで並べ替え、各Helperの起動引数を見せてくれます(レンダラー / GPU / 拡張プロセス / ユーティリティを一目で見分けられます)し、プロセスごとのメモリ履歴も提供します。タブのタイトルは表示しません — その情報はブラウザ内蔵のタスクマネージャ(上記1)が引き続き最適です。

Google Chrome HelperとSafari Web Contentとは?

ブラウザは10年以上前から単一プロセスのプログラムではありません。現代のブラウザはどれも、セキュリティの隔離(あるタブが別のタブのメモリを読めないようにする)とクラッシュの隔離(1つのタブのクラッシュで全体が落ちないようにする)のために、作業を複数の専門プロセスに分けています。

ChromeとChromiumベースのブラウザ(Chrome、Edge、Arc、Brave、Vivaldi、Opera)はほぼ同じモデルを使います。macOSでは次のように見えます:

ブラウザごとに名前は少し違います(Edgeは「Microsoft Edge Helper」、Braveは「Brave Browser Helper」、Arcは「Arc Helper」)が、アーキテクチャは同じです。

SafariはAppleのWebKitを使い、命名規則も独自です:

いずれの場合も、ルールは同じです:「Helper (Renderer)」や「Web Content」のエントリは、1つのタブ、1つのクロスサイトフレーム、1つの拡張機能、または1つのブラウザサービスに対応します。1つが2 GBのメモリを示しているなら、これらのうちのどれかが2 GBを使っている、ということです。

パーセンテージについての注意:Activity Monitorで100% CPUは1つの完全なCPUコア相当を意味します。マルチコアのMacでは、単一のHelperが100%を大きく超えて報告されることもあります。メモリビューも同様で、各行は独立して扱われます。

視点の切り替え:Helper はレンダラー、たいていは特定のタブ用

この問題で最も役立つ視点の切り替え:

Chrome Helper (Renderer)は漠然と「Chromeのプロセス」ではなく、特定のレンダラーです — たいていは1つのタブ用ですが、タブ内のクロスサイトiframe1つ用、あるいは1つの拡張機能用ということもあります。診断のための問いは「どれか?」です。

Helperをメモリで並べ替えることは、おおむねタブをメモリで並べ替えることと同じ — ただし注意点があります。Activity Monitorは見た目がまったく同じ「Google Chrome Helper (Renderer)」のエントリの列を見せてくれますが、どれがGmailのタブで、どれが2日前に閉じ忘れたYouTubeなのかは教えてくれません。

これを実際よりも難しくしている要因が3つあります:

本記事の残りは、Helperを正しい対象へ効率よくマップする方法についてです。

ブラウザHelperのメモリ消費を引き起こす要因

頻度順に7つ:

1. 重いWebアプリ

最大の原因。Gmail、Google Docs、Google Sheets、Figma、Notion、Linear、Slack web、Discord web、Microsoft 365 のWebアプリ、ChatGPT、Claude、その他長時間のWebセッションを持つチャットやAIツールは、数時間使っていると1タブあたり500 MBから数GBに達することが普通にあります。添付ファイル、メッセージ履歴、ドキュメントの状態、事前レンダリングされたUIをメモリ上にキャッシュしているからです。

2. バックグラウンドタブのストリーミング動画・音楽

YouTube、Twitch、Netflix(ブラウザ版)、Spotify web、Apple Music web — 再生中はそれぞれ数百MB、一時停止していてもかなりのバッファをメモリに保持していることがあります。

3. WebGL、canvas、三次元コンテンツ

three.jsのシーン、ブラウザ上のAI画像生成(Stable Diffusion、Midjourneyのweb)、3DマップビューアGoogle Maps(地形あり)やMapboxのデモ、ブラウザゲーム、ブラウザCADツールはいずれも大きなGPU・CPUバッファを確保します。

4. リークや無制限キャッシュのある拡張機能

古い広告ブロッカー、タブマネージャ、スクリーンショットツール、「AIアシスタント」拡張機能などが頻繁な原因です。見たすべてのタブへの参照を保持し続けるような拡張は際限なく成長します。Chromeでは各拡張も自分のHelperプロセスで動くため、リークしている拡張は「タブを閉じても下がらず、ひたすら大きくなり続けるHelper」として現れます。

5. 忘れていたタブ

最も気まずい原因。1週間で溜まった80個のタブのうち半数がまだ動いているWebアプリで、それぞれ数百MBを保持している、というやつです。Memory Saver / Sleeping Tabsを有効にしていない限り、ブラウザは自動では回収しません。

6. クラッシュしたタブがメモリを解放しない

ときどき、Helperが「タブは死んでいるがプロセスは終了していない」状態でハマることがあります。そのHelperを終了させるかブラウザを再起動するまで、メモリは確保されたままです。

7. ブラウザや拡張機能のアップデートによるリグレッション

主要なブラウザはどれもいずれかのバージョンでメモリの後退を出します — 通常は次の1〜2バージョンで修正されます。更新直後にメモリ消費が急に悪化し、他のユーザーからも同じ報告が出ているなら、これが原因です。

真犯人を見つける方法

Activity Monitorの「メモリ」タブは自然な出発点ですが、Helperは見分けがつかないエントリとして並び、タブとのマッピングは何も示してくれません。高メモリのHelperからそれを所有しているページへ橋渡しする手段が必要です。

ステップ1:Chromiumベースのブラウザは、内蔵のタスクマネージャを開く

Chrome、Edge、Arc、Brave、Vivaldi、Operaの場合、ここが最初の一手で、ほとんどのケースを解決します。macOSでの確実な経路は ウインドウメニュー → タスクマネージャ です(一部のブラウザではメインメニュー → その他のツール → タスクマネージャからも開けます)。Windows / LinuxのShift+EscショートカットはMacでは不安定なので、頼りにしないでください。

すべてのタブ、拡張機能、Helperがタブ名や拡張機能名つきでメモリ順に並びます。行を選んで プロセスを終了 をクリックすると、そのタブ・拡張機能・Helperプロセスのいずれかが終了します — タブの行を閉じるとタブが閉じ、拡張機能の行を閉じるとその拡張が停止し、Helper単体の行を閉じるとそのプロセスが終了します(サービス系のHelperはブラウザが自動で再起動します)。

Helperプロセスをタブのタイトルに直接マップできるmacOSの内蔵ツールはこれだけです。

ステップ2:Safariは、macOSのアクティビティモニタに戻る

SafariはChromeのタブごとタスクマネージャに相当する機能を提供していません。実用的な選択肢は2つ:

Safariにはタブを横断するメモリのランキングは内蔵されていません — これは本記事の欠落ではなく、ブラウザ側の制限です。

ステップ3:ブラウザ横断の視点や履歴データが必要ならProcXrayを使う

ProcXrayは、内蔵のタスクマネージャでは対応しきれない3つの場面で役立ちます:

この問題に効く機能:

Activity Monitorのこの種のデバッグでの限界の全体像は、ProcXray vs Activity Monitorを参照。

ステップ4:疑わしいタブを閉じてA/Bテスト

仮説(特定のタブ、拡張、サイト)ができたら、それを閉じてHelperが終了するかを見ます。占有していたメモリは数秒以内にシステムに戻ります。下がらなければ、閉じたものは犯人ではありません。次の候補を試してください。Safariのタブを絞り込む唯一の確実な方法でもあります — Safariには内蔵のタブ間ランキングがないからです。

段階的な対処

順番に試してください — 安価で副作用の少ないものから。

1. ブラウザのタスクマネージャから犯人タブを閉じる

最も効果的な手段。macOSのChrome / Edge / Arc / Brave:ウインドウメニュー → タスクマネージャ → メモリで並べ替え → 重い行を選択 → プロセスを終了。タブは閉じられます(拡張機能やサービスの行を選んだ場合は、そのプロセスが終了します)。閉じたタブが必要なら履歴から開き直せます。

2. 作業を失わずに犯人タブを開き直す

タブ自体は使いたいが、長時間動いていたWebアプリが膨れすぎている、という場合。タブを右クリック → 「再読み込み」で同じHelperの中でページを読み直せます。新しいHelperが欲しいなら、閉じてから「最近閉じたタブ」で開き直してください。Safariなら ⌘W のあと ⌘Z(タブを閉じるのを取り消し)でクリーンに復元できます。

3. リークしている拡張機能を無効化する

ProcXrayのCommand Lineビューでメモリ上位に拡張機能のIDが見えていたら、その拡張を無効化します。Chrome:chrome://extensions。Safari:設定 → 機能拡張。対応するHelperのメモリが数秒で下がるはずです。正常に戻れば原因確定 — 代替を探すのも選択肢です。

4. ブラウザのタブ休止機能を有効化する

これで「100個の使っていないタブが30 GBを抱え込む」状態が「100個の可視タブが数百MBに収まる」状態に変わります。代わりに、再訪時にページの再読み込みが1回入ります。

5. ブラウザを再起動する

クリーンな再起動はすべてのHelperをリセットし、クラッシュしたりリークしたりしていたHelperが抱えていたメモリを回収します。ProcXrayの履歴がリークを示していても具体的に特定できないときは、これが最速の修正です。

6. ブラウザと拡張機能をアップデートする

更新直後にメモリ使用が急に悪くなった場合、修正版が出ていないか確認してください。Chrome、Edge、Arc、Braveは自動更新ですが、反映には再起動が必要です — メニューで「再起動して更新」が出ていないか確認しましょう。

7. 最後の手段:ログアウト、または再起動

ブラウザのHelperはセッションをまたいで残るものではありませんが、すべて失敗したらログアウトでフルリスタートなしに環境をきれいに作り直せます。

ブラウザだけが容疑者ではないより広範なメモリトリアージについては、適切なプロセスを終了させてMacの動作の重さを直す方法を参照。

よくある質問

なぜGoogle Chrome Helperプロセスがこんなに多いのですか?

タブごとに1つ、サイトフレームごとに1つ(クロスサイトのiframe用)、拡張機能ごとに1つ、加えてGPU用のHelperとネットワーク用のHelper。20タブ+数個の拡張で、25〜30個のHelperは普通に出ます。セキュリティ隔離のために必要な設計であり、それ自体は問題のサインではありません。

個別のHelperを終了させても安全ですか?

安全です。Activity MonitorからHelperを終了させたり、ターミナルでkillしたりするのは、そのタブがクラッシュしたのと同じ意味になります。Chromeはそのタブを「He’s dead, Jim」/「Aw, Snap!」エラーページとして表示しますが、再読み込みすれば復元されます。失われるのは未保存の内容(フォーム入力、途中のチャットなど)です。ブラウザ本体は動き続けます。

SafariはChromeより本当にメモリ消費が少ないですか?

多くの場合は少なめです — Safariはバックグラウンドタブのスロットリングが強めで、タブがフォーカスを失ったときの解放が速く、macOSの圧縮メモリも積極的に使います。差は実在しますが、ミームほど劇的ではなく、使うWebアプリ次第で大きく変わります。Chromeで開いた5つのアイドルなタブの方が、Safariで5つアクティブな動画を再生しているタブよりメモリ消費が少ない、ということもあります。

ProcXrayなしで、どのHelperがどのタブか見分けるには?

Chromiumベースのブラウザ(Chrome、Edge、Arc、Braveなど)であれば、ブラウザ内蔵のタスクマネージャ(macOSではウインドウメニュー → タスクマネージャ)がタブのタイトルをプロセスにマップします。macOS上でこれができる内蔵ツールはこれだけで、ProcXrayの有無にかかわらず最初の一手にすべきです。ProcXrayはここに「ブラウザ横断の視点」「リーク特定のための履歴データ」「Helperのサブタイプ判別(レンダラー / GPU / 拡張プロセス)」を補います。Safariには相当する内蔵マップ機能がまったくありません — Safariの場合はタブを1つずつ閉じてA/Bテストするのが現実的な代替策です。

タブを閉じてもメモリが増え続けるのはなぜ?

3つの可能性。第1に、タブを閉じてもHelperが完全に終了するまで数秒かかることがあります — 結論を出す前に10〜20秒待ちましょう。第2に、拡張機能のHelperはタブをまたいで存続するので、タブを閉じても拡張機能のメモリには影響しません。第3に、ブラウザまたは拡張機能の本物のリーク:新しいタブを開いていなくてもメモリは増え続けます。ProcXrayのResource Historyでリークを確認し、Command Lineビューでどのプロセスが漏らしているかを特定してください。

参考資料


ProcXrayを無料でダウンロード → — Chrome / Safari / Edge / Arcを横断してブラウザHelperをメモリ順にひとつのビューで並べ替え、各Helperの起動引数と履歴を確認し、リークを早めに捕まえましょう。macOS Sonoma+、Apple Silicon・Intel対応。