chrome メモリ 上限 増やす|Macで実際に効く手だて

Chromeのメモリの上限を増やしたいと調べ始めるきっかけは、たいてい具体的な出来事だ。朝から開いたままの管理画面に戻ったら真っ白になって読み込み直された。書きかけのフォームが消えた。Macのファンが回り続けて、文字入力が一拍遅れる。設定のどこかに数値があって、それを大きくすれば済むはずだと考えるのは自然だが、Chromeにその数値は無い。無い理由を押さえると、代わりに何を触ればよいかがはっきりする。

Chromeに「メモリの上限」という設定は無い

Chromeの設定画面には、ブラウザが使ってよいメモリの量を決める欄が無い。タブ1枚あたりの割り当てを増やす正式なスイッチも無い。Chromeはページが必要とした分をその都度OSから受け取り、タブを閉じたり眠らせたりしたときに返している。上限を決めているのはChromeの方針ではなく、そのMacに載っているメモリの量だ。

仮に割り当てを増やす設定があったとしても、増やした分はどこかから持ってくることになる。Macの場合、まず物理メモリ、足りなくなれば圧縮、それでも足りなければ起動ディスクへのスワップという順番で確保される。Appleのアクティビティモニタユーザガイドは、その動きをそのまま書いている。

圧縮: 利用できるRAMの容量を増やすために圧縮されたメモリの容量。 コンピュータの最大メモリ容量に近付くと、メモリ内の停止中アプリが圧縮され、動作中アプリがより多くのメモリを使用できるようになります。 出典: support.apple.com

つまり「使っていないものを縮めて、いま使っているものに回す」という処理は、Chromeの設定を触る前からmacOSがやっている。そうすると本当の論点は、上限をどう増やすかではなく、メモリが足りなくなったときに何を残して何を諦めるかという配分の問題になる。設定ではなく、開き方の問題だと言い換えてもよい。

「上限を増やしたい」の中身は3種類ある

同じ言葉で検索していても、困っている現象は次のどれかに分かれる。現象が違えば触る場所も違うので、先に見分けたほうが早い。

起きていること 実際の中身 効く手だて
戻るとタブが再読み込みされる Chromeがそのタブを意図的に眠らせた メモリセーバーの強さ、除外リスト、タブの固定
Mac全体が重い。ファンが回る Chrome以外も含めたメモリ不足 常駐させるものを減らす。RAMの増設
特定のタブだけが落ちる そのページを描いているプロセスの問題 そのページに持たせている量を減らす

いちばん多いのが1つ目で、これが「上限に達した」と誤解されやすい。Chromeは使われていないタブを止めてメモリを空け、そのタブに戻ったときに自動で読み込み直す。故障ではなく設定の結果なので、強さを変えることも、対象から外すこともできる。

2つ目はChromeの話ではない。ネイティブアプリも同時に動いていて、スワップが増え続けているなら、ブラウザの設定をいくら変えても不足そのものは消えない。

3つ目は、Chromeがサイトごとにプロセスを分けている作りから来る。1枚のページが倒れても窓全体は生き残るが、その1枚に持たせている量を減らさない限り再発する。

触る前に、何が重いのかを測る

Chromeにはタスクマネージャが入っていて、推測ではなく数字で並べ替えられる。ヘルプの手順は短い。

[メモリ使用量] を選択して、メモリ使用量が多い順にタスクを並べ替えます。 出典: support.google.com

呼び出しは右上のその他アイコンから、その他のツール、タスク マネージャの順。並べ替えると、たいてい予想と違うものが上位に来る。同じヘルプが「バックグラウンド ページ」というアイテムを探すよう勧めているとおり、タブではなく拡張機能の常駐部分が上位に居座っていることは珍しくない。

並べ替えた一覧から不要なものを止められるが、ヘルプは「タスクで保存していない作業内容は失われます」と注意している。プロセスの終了は、重さの原因を突き止めるための確認手段として使い、書きかけを抱えたタブには使わないほうがよい。一覧に出てくるのはタブだけではなく、GPUの処理やネットワークの処理も別の行として並ぶため、ブラウザの常駐分がどれくらいあるのかも同時に分かる。

OS側で見る数字は、使用済みメモリの量ではなくメモリプレッシャーになる。Appleはメモリプレッシャーを、空きメモリ容量、スワップ率、確保されているメモリ、ファイルキャッシュメモリによって決まるものと説明している。RAMのほとんどが使用中でもプレッシャーが低いなら、そのMacは正しく動いている。空いているメモリは遊んでいるメモリだからだ。逆に、プレッシャーが高いまま下がらず、スワップ使用領域が増え続けているときだけが、本当に足りていない状態になる。

タブ単位の重さを見たいなら、Chrome側の表示も使える。Macでは設定のデザインにある「タブ マウスオーバーのプレビュー カードにメモリ使用量を表示する」をオンにすると、タブにカーソルを合わせたときにそのタブの使用量が出る。感覚で「重そうなタブ」と呼んでいたものが、比べられる数字になる。

眠らせたくないサイトを名指しする

割り当てを増やす設定が無い以上、それに最も近い操作は「このサイトは眠らせない」と指定することになる。設定のパフォーマンスにある「常にアクティブにするサイト」がそれで、ここに入れたサイトは、長時間放置してもメモリと状態を保ったまま残る。

指定する価値があるのは、読み込み直しの代償が大きいものに限られる。書きかけの本文を抱えたメール、条件を絞り込んだ案件ボード、保存前の原稿を開いたエディタ、認証と再描画に時間のかかる管理画面。逆に、記事を読むために開いただけのタブを入れる意味は無い。

住所の書き方は公開されていて、思ったより細かく指定できる。

手動によるサイト除外ポリシーのウェブアドレスの形式は、 [scheme://][.]host[:port][/path][@query] です。 出典: support.google.com

ヘルプの例に沿うと、ドメインだけを書けばサブドメインも含めて除外され、業務で使う一式をまとめて守れる。ホストの前にドットを付けると、そのホストだけが対象になり、サブドメインは除外されない。パスまで書けば、大きなサービスのうち特定の画面だけを守ることもできる。

Chromeが最初から眠らせないタブ

設定に関係なく非アクティブにならないタブもあり、この一覧を知っていると、挙動が気まぐれに見える理由がだいたい説明できる。ヘルプが挙げているのは次の状況になる。

  • アクティブな音声や動画(再生または通話)
  • 画面共有
  • ページ通知
  • アクティブなダウンロード
  • 一部記入済みのフォーム
  • 固定タブ
  • 接続済みのデバイス(USBまたはBluetooth)

覚えておく価値が高いのは「一部記入済みのフォーム」と「固定タブ」の2つだ。前者は、いちばん恐れられている「書きかけが消える」がそもそも起きにくいことを意味する。後者は、除外リストに住所を打ち込まなくても、タブを固定するだけで同じ効果が得られることを意味する。常時開くアプリが3つ程度なら、固定だけで足りることも多い。

メモリセーバーを切ると何が起きるか

機能そのものをオフにするのは、RAMに余裕があり、開くタブの数も多くないMacでは筋の通った選択になる。何も眠らないので読み込み直しも起きない。

一方、すでにメモリが足りていないMacで同じことをすると、体感は悪くなる。Chromeが手放さないメモリは他から捻出されるため、圧縮とスワップが増え、作業の途中でディスクへの書き出しが走る。タブの再読み込みが消える代わりに、Mac全体の引っかかりが増えるという交換になる。

現実的なのは中間で、機能は残したまま、非アクティブになるまでの長さを普段の放置時間に合わせ、除外リストは状態を失うと困る少数のアプリにだけ使う。全体の設定を一律に強くしたり弱くしたりするより、「何を残すか」を名指しで決めるほうが効く。

なお、パフォーマンスの設定にはページをプリロードする項目も並んでいる。これは表示を速くするために、アクセスすると予想されるページを先に読み込む仕組みで、メモリの上限とは別の話になる。速さの設定とメモリの設定が同じ画面にあるため混同されやすいが、タブが眠るかどうかを決めているのはメモリセーバー側だけだ。

1つのタブだけが重いとき

除外リストは、眠らされて困る場合の道具であって、1枚のページが単独で膨らんでいく場合には効かない。数千件を読み込んだ一覧、レイヤーの多いデザインファイル、何時間も流し続けているログ画面、データベース代わりに使っている表計算などがこれに当たる。

この場合に効くのは、そのページに持たせている量を減らすことだけになる。全件ではなく絞り込んだ状態で開く、育ちすぎた1つのファイルを分ける、同じサイトを指す別のタブを閉じる、そのページに毎回処理を差し込む拡張機能を外す、といった手当てになる。

ついでに直しておきたい習慣が1つある。Chromeを何日も終了せずに使い続けると、長時間開いたままのページは、読み込み直していれば手放していた分を抱え続ける。金曜に重くて月曜に軽いなら、上限の問題ではない。

RAMの増設が答えになる場合も確かにある。普段の作業でメモリプレッシャーが高いまま下がらず、スワップも使われていて、しかもブラウザ側に余計なものが残っていないなら、設定では容量は生まれない。ただしその判断の前に、1週間ほど測っておく価値はある。タブを30枚と拡張機能を12個抱えたブラウザは、メモリの足りないMacとよく似た見え方をするが、直す費用はまったく違う。

常駐させるものを、置き場所として決める

ここまでの手だては、結局のところ「一日中メモリを持ち続けてよいものはどれか」という1つの決定に集まる。この決定が続かない理由は、普通のブラウザの窓が2種類のタブを同じ場所に混ぜているからだ。今日の午後だけ使う調べもののタブと、月曜から開いたままのメールが、同じタブバーに並んで同じ扱いを受ける。

長く居るアプリと使い捨てのタブを別の場所に分けてしまえば、この決定は毎日やり直す作業ではなくなる。Webアプリをまとめるブラウザが取っている形がそれで、メールやチャットや案件ボードは名前の付いた場所に残り、読むために開いただけのものは考えずに閉じられる側にたまる。アプリごとに独立したワークスペースという考え方で、どの単位で分けられるのかはワークスペースにまとまっている。各アプリの窓が何を保持するのかはできることで確認できる。

分ける効果は、落ちたときにも出る。重いアプリが1つ倒れても、それが他の20枚のタブと同じ窓に居なければ、復旧はそのアプリを読み込み直すだけで済む。タブバーの中から原因を探す手間が消える。

まず動かすなら順番はこうなる。タスクマネージャをメモリ使用量で並べ替え、上位3件を書き出す。使っていない拡張機能の常駐部分が入っていたらその日のうちに外す。読み込み直されると困るアプリを2つか3つだけ常にアクティブにする側へ入れ、残りはメモリセーバーに任せる。それでも同じ顔ぶれが翌月も居座っているなら、そのアプリたちは窓を分けて置く対象になっている。

よくある質問

Chromeのメモリ上限を増やす起動オプションはありますか?

タブに大きな割り当てを与える正式なオプションはありません。Chromeがタブごとの割り当てを決めていないためです。起動オプション自体は別の用途で用意されていますが、上限の数値を書き換えるものではありません。使えるのはパフォーマンスの設定、常にアクティブにするサイトの指定、そして同時に開いておく量の3つになります。

閉じていないタブが勝手に読み込み直されるのはなぜですか?

しばらく使われていないタブをChromeが非アクティブにし、戻ったときに自動で読み込み直しているためです。設定の結果であって不具合ではありません。非アクティブになるまでの長さを緩める、そのサイトを常にアクティブにするサイトへ追加する、タブを固定する、のいずれかで止まります。

RAMのほとんどが使用中なら増設したほうがよいですか?

使用済みの量だけでは判断できません。Appleはメモリプレッシャーで見るよう案内していて、これは空きメモリ容量、スワップ率、確保されているメモリ、ファイルキャッシュメモリから決まります。使用中が多くてもプレッシャーが低いなら正常です。高い状態が続き、スワップ使用領域も増え続けている場合が、容量そのものが足りていない状態になります。

プロファイルを増やすのとタブを増やすのでは、どちらが重いですか?

同時に動かすプロファイルの数だけブラウザ側の常駐分が増えるため、同じページ数なら1つのプロファイルにまとめたほうが軽くなります。プロファイルを分ける利点はCookieとセッションの分離であって、軽さではありません。読み込み直しを避けたいだけなら、除外リストやタブの固定のほうが費用は小さくなります。

記事一覧へ戻る