Chromeのメモリ使いすぎを、順番に切り分けて手当てする
Chromeがメモリを使いすぎていると感じる場面は、たいてい同じ形をしている。アクティビティモニタを開いてメモリ順に並べると、上位が Google Chrome Helper で埋まっている。ファンは昼から回りっぱなしで、タブは調べ物のついでに開いたものを含めて40個を超えている。ここで起きる問いは、Chromeが壊れているのか、Macが小さすぎるのか、それとも今のブラウザはこういうものなのか、の3つになる。この3つは別の問題で、効く手当ても別になる。切り分けは順番にやれば数分で終わる。
プロセスが多く見えるのは、分かれているから
数字が大きく見える最初の理由は、Chromeがアクティビティモニタに1行で出てこないことにある。ブラウザ本体、GPU、ネットワーク、サイトごとの描画、バックグラウンドで動く拡張機能が、それぞれ別のプロセスとして並ぶ。全部を足せば、単一プロセスのブラウザなら決して出ない数字になる。
この分割は速度のための設計ではなく、安全のための設計になる。違うサイトのページを別のプロセスに置くことで、片方のページが不正な動きをしても、もう片方のサイトのセッション情報に手が届かないようにしている。分割をやめればメモリは減るが、減った分だけ境界がなくなる。探して無効にするたぐいの設定ではない。
この構造から言えるのは、合計値が判断の材料にならないということになる。12のサイトにまたがる40ページを開いていれば、合計は必ず大きい。見るべきなのは、どの行が大きいか、そしてそれが今使っているものかどうかになる。この問いにはChrome自身が答えを持っている。
設定を触る前に、タスクマネージャで並べ替える
Chromeには、タブ、拡張機能、内部のプロセスを1行ずつメモリ使用量つきで並べる機能がある。公式の手順は短い。右上のその他アイコンを選び、「その他のツール」から「タスク マネージャ」を選ぶ。開いたら「メモリ使用量」を選んで多い順に並べ替える。
並べ替えると、だいたい次の3種類が上位に出てくる。
- バックグラウンドページ。公式もヒントとして「バックグラウンド ページ」という項目を探すよう案内している。拡張機能は使っていない日でも常駐しており、1年前に入れたクリップボード系や価格追跡系が、実際に開いているタブより上に来ることがある
- 朝から開きっぱなしのメールやチャット。長時間動き続けるWebアプリは蓄積する。2,000件スクロールしたメッセージ一覧は、その全部を保持している。閉じて開き直すだけで大きく下がる
- 開いた記憶のないページ。背面のウィンドウに残った資料、3時間前に止めた動画、自動で更新され続けるダッシュボード。作業中の感覚はないのに常駐している
タスクマネージャからは「プロセスを終了」も選べる。ただし公式は、そのタスクで保存していない作業内容は失われる、と注記している。終了は原因を確かめるための操作であって、手当てそのものではない。この作業の価値は、止めることではなく一覧が得られることにある。
拡張機能は、使っていない日でも場所を取っている
一覧の上位にバックグラウンドページが出てきた場合、手当てははっきりしている。公式が案内する「Chromeの動作を速くする」手順でも、不要なプロセスを止める段の先頭に拡張機能が置かれている。右上のその他アイコンから「拡張機能」を選び、「拡張機能を管理」を開いて、無効にするか削除する。
ここで迷いやすいのは、無効と削除のどちらを選ぶかになる。無効にすると一覧には残るが、バックグラウンドの常駐は止まる。しばらく様子を見て、困らなければ削除する、という順番が安全になる。いきなり削除すると、その拡張機能が持っていた設定やログイン状態も一緒に消える場合がある。
判断の材料は、その拡張機能を今月使ったかどうかになる。入れた理由を思い出せないものは、たいてい使っていない。並べ替えたタスクマネージャの一覧と、拡張機能の管理画面を並べて見ると、常駐しているのに今月一度も押していないアイコンが見つかる。この整理は一度やれば効き続けるので、設定をいじる手当てより先に済ませるほうが順番として効率がよい。
同じ手順の中では、ほかに3つの段が示されている。Chromeを最新版に更新すること、使っていないタブを閉じること、そしてプリロードの設定を見直すことになる。タブを閉じるショートカットはMacでは command と W の同時押しになる。プリロードは、アクセスが予想されるページをあらかじめ読み込んで表示を速くする仕組みで、設定の「パフォーマンス」にある「ページをプリロードする」で切り替える。速度と引き換えに読み込む量が増えるため、メモリに余裕がない環境では確認しておく価値がある。
苦しいかどうかは、メモリプレッシャーで判断する
Macの使用済みメモリが大きいこと自体は異常ではない。macOSは空いているメモリを意図的にファイルのキャッシュで埋める。Appleの説明でも、キャッシュされたファイルは、パフォーマンス向上のために未使用メモリにキャッシュされたファイルのサイズ、と定義されている。使っていないメモリを遊ばせない設計になっている。
実際に苦しいかどうかを示すのは、別の行になる。
メモリプレッシャー: メモリが処理のためにどの程度効率的に使用されているのかを視覚的に表現します。 出典: support.apple.com
判断の材料はこのグラフになる。使用済みメモリが大きくてもメモリプレッシャーが緑なら、仕事をしている状態になる。黄色や赤が続くなら、部屋が足りていない。
同じ画面の2つの行も併せて読む。圧縮は、利用できるRAMの容量を増やすために圧縮されたメモリの容量を示す。スワップ使用領域は、RAMに収まらない分を起動ディスク側で預かっている量になる。圧縮が小さくスワップが出ていなければ、合計値がいくら大きくても余裕がある。午後にかけてスワップが増え続けているなら、何かを閉じる必要がある状態になる。
この判定で、次に読むべき節が変わる。緑なら、悩みはタブの再読み込みや体感速度であり、Chromeの設定の話になる。赤でスワップが伸び、しかも他のアプリも動いているなら、ブラウザの設定では解決しない。取り合っている相手がブラウザだけではないからになる。
メモリセーバーは何を節約して、何を捨てるか
Chrome側の答えは、使っていないタブを非アクティブにして、開いたときに自動で再読み込みすることになる。設定の「パフォーマンス」にあり、レベルは3段階から選ぶ。
| レベル | 公式の説明 | 向いている状況 |
|---|---|---|
| 適度 | タブは長時間経過してから非アクティブになる | メモリに余裕があり、再読み込みが煩わしい場合 |
| バランス重視 | タブは最適な時間が経過してから非アクティブになる | 推奨。まず試す位置 |
| 最大 | タブは短時間経過してから非アクティブになる | メモリが小さく、再読み込みよりスワップのほうが痛い場合 |
代償になるのはページの状態になる。書きかけのフォーム、絞り込みを適用した一覧、保存していない下書き、認証に時間のかかるダッシュボード。これらは戻ったときに作り直される。読むだけのタブなら代償はほぼゼロだが、1日中使う4つか5つのアプリにとっては、これが最も煩わしい挙動になる。
そのための除外リストが用意されている。「常にアクティブにするサイト」で、開いているタブから選ぶか、アドレスを手で入力して追加する。書式は公式に示されていて、たとえば「google.com」と指定すると、サブドメインを含めて常にアクティブになる。ホストの前にドットを付けて「.google.com」とすると、サブドメインは対象から外れる。常用するアプリを数件だけ除外して、残りを最大にしておく形が、どちらか一方に振り切るより実用的になる。
非アクティブ化そのものが起きない条件も公式に列挙されている。アクティブな音声や動画(再生または通話)、画面共有、ページ通知、アクティブなダウンロード、一部記入済みのフォーム、固定タブ、接続済みのデバイス(USBまたはBluetooth)になる。固定タブとページ通知が入っている点は重要で、常駐させたいものほど節約の対象から外れる構造になっている。
状態を目で見たいなら設定を2つ入れておく。「アクティブでないタブのデザイン」をオンにすると、非アクティブなタブのアイコンがリングの中に表示される。Macでは「デザイン」にある「タブ マウスオーバーのプレビュー カードにメモリ使用量を表示する」をオンにすると、カーソルを合わせたときに数字が出る。推測せずに済む。
効きそうで、実際にはあまり効かない手当て
検索で出てくる対処のうち、順番を後ろに回してよいものもある。
プロファイルの作り直しは、設定の破損が疑われるときの最後の手段になる。メモリが多いこと自体は壊れている証拠ではないため、ここから始める理由がない。
省エネモードはメモリの設定ではない。デバイスが電源に接続されていないときに、画像のキャプチャレートやバックグラウンドの処理を制限するものになる。電源に接続していればオンにならない。バッテリー持ちの話であって、使用済みメモリの話ではない。
タブを一括で閉じる操作も、翌日には元に戻る。開いていた理由が消えていないからになる。片付けは効くが、片付け続ける必要がある時点で、原因は別の場所にある。
メモリを増設できない機種で、購入をすぐ検討し始めるのも順番が早い。アクティビティモニタには、Macがより多くのRAMを使用できるかどうかを判断するための見方が用意されている。判断材料はやはりメモリプレッシャーとスワップで、緑のまま推移しているなら、増設しても体感は変わらない。先に読むべきものを読まずに買うと、同じ症状が新しい機械で再現する。
減らせないタブが残るなら、直す対象はブラウザではない
ここまでの手当てを終えると、それでも残るものがはっきりする。メール、チャット、カレンダー、タスク管理、それに毎日開く社内のシステム。これらは調べ物のタブと違って、閉じる対象にならない。通知を受けたいので畳めず、固定すれば非アクティブ化の対象から外れ、除外リストに入れれば節約もされない。
このとき、メモリの数字は1日の組み立てが出している結果になる。常駐が必要なサービスを5つ以上抱えたまま、それを同じブラウザの同じタブバーに並べていることが前提になっている。設定でできるのは、この前提の上で削れる分を削ることまでになる。
アプリごとに独立したワークスペースを与える形にすると、常駐が必要なものと、その都度開いて閉じるものが別の場所に分かれる。ブラウザのタブバーは調べ物の作業台に戻り、常駐するサービスは開き直す対象ではなくなる。どこまで扱えるのかはできることに整理されている。役割ごとにまとめて持つ形はワークスペースで説明されていて、同じサービスに複数のIDを並べる置き方もここに含まれる。対象のサービスが扱えるかどうかは使えるアプリで確かめられる。同じ領域の他社製品との条件差はWaveboxとの比較にまとめられている。
次に手を付ける順番は決まっている。まずタスクマネージャをメモリ順に並べて、上位に出た拡張機能を整理する。次にアクティビティモニタでメモリプレッシャーとスワップを確認し、そもそも苦しいのかを判定する。苦しいならメモリセーバーをバランス重視から始めて、常用するアプリだけを除外リストに入れる。ここまでやっても数字が下がらないなら、削るべきなのは設定ではなく、同じ窓に常駐させているサービスの数になる。
よくある質問
Chromeのプロセスがアクティビティモニタに大量に並ぶのは異常ですか?
異常ではありません。Chromeはブラウザ本体、GPU、ネットワーク、サイトごとの描画、拡張機能をそれぞれ別のプロセスとして動かしています。違うサイトを別プロセスに置くことで、片方のページがもう片方のサイトの情報に手が届かないようにする安全のための設計です。合計値ではなく、個別に大きい行を見てください。
どのタブが重いのかを調べる方法はありますか?
Chromeのタスクマネージャを使います。右上のその他アイコンから「その他のツール」を選び「タスク マネージャ」を開いて、「メモリ使用量」を選ぶと多い順に並びます。公式は「バックグラウンド ページ」という項目を探すよう案内しています。プロセスを終了すると、そのタスクで保存していない作業内容は失われる点に注意してください。
使用済みメモリが大きいのですが、何を見れば危ないと分かりますか?
アクティビティモニタの「メモリプレッシャー」を見ます。これはメモリが処理のためにどの程度効率的に使用されているかを視覚的に示すもので、緑であれば使用済みメモリが大きくても問題ありません。あわせて圧縮とスワップ使用領域を見て、スワップが増え続けているなら何かを閉じる必要があります。
メモリセーバーをオンにするとタブが勝手に再読み込みされて困ります?
設定の「パフォーマンス」にある「常にアクティブにするサイト」へ追加すると、そのサイトは非アクティブになりません。書式は公式に示されていて、たとえば「google.com」と入力するとサブドメインを含めて対象になります。常用する数件だけ除外し、残りは最大にしておく形が実用的です。