用語集/よく見かけるプロセス

ヘルパープロセス

別名: Google Chrome Helper (Renderer)

結論

ヘルパープロセスは、Webページの描画、機能拡張の実行、グラフィックスの処理など、仕事の一部を担当させるためにアプリが起動する別のプロセスです。アクティビティモニタではそれぞれが独立した行として表示され、多くはアプリ名のあとに“Helper”が付いた名前です。

ブラウザやWeb技術で作られたアプリは、仕事を多くのプロセスに分けます。たとえばGoogle Chromeは、通常Webコンテンツ用のRendererヘルパー、GPUヘルパー、さらに機能拡張やユーティリティ用のヘルパーを実行します。1つがクラッシュしても、アプリのほかの部分は動き続けます。

困るのは、アクティビティモニタがヘルパーを1つずつ別々に表示することです。メインの行では控えめな数値のアプリも、ヘルパーをすべて合計すると、ずっと多くを使っていることがあります。

Google Chrome Helperのプロセスがたくさんある理由

Chromeは、Webページや機能拡張を互いに切り離すために、それぞれに専用のプロセスを割り当てます。開いているタブ、サイト、機能拡張が多いほど、たいていヘルパーも増えます。ほかのブラウザや、Web技術で作られた多くのデスクトップアプリも同じ仕組みです。

リソースを使っているタブや機能拡張を見つける方法

アクティビティモニタはヘルパーの名前は表示しますが、それが開いているページまでは表示しません。そのためにブラウザには独自のタスク マネージャがあります。Chromeでは“ウィンドウ” → “タスク マネージャ”を開くと、タブと機能拡張ごとにメモリとCPUが表示されます。

重いタブを閉じるか、使っていない機能拡張をオフにします。アクティビティモニタでヘルパーを1つだけ終了しても、たいていはそのタブや機能拡張がクラッシュするだけなので、アプリの中から閉じるほうが確実です。

アプリの合計使用量を見る方法

アプリとそのヘルパーの行を合計します。アクティビティモニタの“表示” → “すべてのプロセス(階層表示)”では、プロセスが親プロセスの下に表示されるので役に立ちます。ただし、ヘルパーの中にはほかのシステムプロセスから起動されるものもあり、それらはアプリの下には表示されません。

ヘルパーがどのアプリのものか確認する方法

ほとんどのヘルパーにはアプリの名前が付いていますが、すべてではありません。ヘルパーの出どころは、アクティビティモニタでもターミナルでも確認できます。

  1. アクティビティモニタでヘルパーをダブルクリックするか、選択してツールバーの情報ボタンをクリックします。
  2. “上位プロセス”の欄を読みます。ブラウザのヘルパーなら、たいていブラウザ本体です。
  3. 全体を把握するには、“PID”の列でヘルパーのPIDを探し、ターミナルでps -o ppid=,comm= -p <PID>を実行します。親のPIDとヘルパーのフルパスが表示され、そのパスにある.appの名前が、ヘルパーを同梱しているアプリです。
  4. 1つのアプリの行をまとめて見るには、アクティビティモニタの検索フィールドにアプリの名前を入力します。リストが、そのアプリと、同じ名前を持つすべてのヘルパーに絞り込まれます。

ヘルパーの種類ごとの役割

Chromiumベースのブラウザや、Web技術で作られた多くのデスクトップアプリは、括弧付きのラベルが付いたヘルパーに作業を分けています。たとえばChromeのヘルパーには次のようなものがあります:

  • Helper (Renderer): Webページとそのコンテンツを実行します。たいてい最も忙しく、数も最も多いヘルパーです。
  • Helper (GPU): アプリ全体の描画とビデオの処理をグラフィックプロセッサで行います。
  • Helper (Plugin): プラグインのコードを実行します。Slackなど、一部のアプリに含まれています。
  • ラベルのないHelper: ネットワーク、オーディオ、ストレージなどの作業を担うユーティリティプロセスです。

ヘルパーが多いのが問題になるとき

ヘルパーが多いこと自体は正常です。数はおおむね、開いているタブ、ウインドウ、サイト、機能拡張の数に比例し、どれもアイドル状態ではほとんど使いません。

問題になるのは、アプリを使っていないのに1つのヘルパーが“% CPU”のリストの上位に居続けるときや、アプリのヘルパーが合計で大量のメモリを使い、“メモリプレッシャー”が黄色や赤になるときです。どちらの場合も、アプリに独自のタスク マネージャがあればそれを開き、原因のページや機能拡張を見つけて、アプリの中から閉じます。

使っていない機能拡張も確認する価値があります。Chromiumベースのブラウザでは、機能拡張がそれぞれ専用のヘルパープロセスで動くので、インストールして忘れていた機能拡張が、バックグラウンドでメモリを確保し続けたりCPUを起こしたりすることがあります。不要になったものは削除しましょう。

よくある質問

Google Chrome Helper (Renderer)とは?

Webコンテンツを描画するChromeのプロセスで、通常は1つまたは複数のタブやサイトを担当します。ページを互いに切り離しておくために、Chromeはこれを複数実行します。

ヘルパープロセスを終了しても大丈夫?

害はありませんが、そのヘルパーが担当していたタブや機能はたいていクラッシュするか再読み込みされます。アプリの中からタブや機能拡張を閉じるほうが確実です。

アクティビティモニタで1つのアプリのプロセスがたくさん表示されるのはなぜ?

多くのアプリは仕事をヘルパープロセスに分けていて、アクティビティモニタはそれらをアプリの下に合計せず、1つずつ別々に表示するからです。

Google Chrome Helper (Renderer)のCPU使用率が高いのはなぜ?

タブや機能拡張のどれかが激しく動いているからで、多くはビデオ、アニメーション、動き続けるスクリプトが原因です。Chromeで“ウィンドウ” > “タスク マネージャ”を開くと、どのタブかがわかります。

Slack、Discord、VS CodeにもHelperプロセスがあるのはなぜ?

これらはChromeと同じマルチプロセス設計を使うWeb技術で作られているので、独自のRenderer、GPU、そのほかのヘルパーを実行します。

アプリを終了してもヘルパープロセスは動き続ける?

通常はアプリと一緒に終了します。アプリを閉じたあとも1つ残っているなら、アクティビティモニタで終了できます。アプリを起動し直せば、新しいヘルパーが起動します。

関連項目

詳しい手順: Chromeのメモリ使用量が多すぎる。

アクティビティモニタより優れたものをお探しなら、Mac向けアクティビティモニタの代替アプリのおすすめをご覧ください。用語集のすべての用語も見られます。