ブラウザタブ開きすぎとメモリの関係|Macでの境目の見つけ方
Gmail、Slack、Notion、それに生成AIのチャット。仕事の道具がほぼWebアプリになった結果、朝に開いたタブが夕方には数えるのも面倒な数になっている。ブラウザタブ開きすぎでメモリが足りていないのではないかと疑い始めた時点で、多くの人はまずタブを閉じる。ところが翌日には同じ数に戻り、Macの重さも戻ってくる。この記事では、タブの数とメモリ消費が実際にはどうつながっているのか、Macのどこを見れば自分の環境の境目が分かるのか、そしてタブを減らす以外にどんな直し方があるのかを順に整理する。
メモリを決めているのはタブの数ではなく、開いているサイトの数
Chromeは1つのアプリとして見えているが、中身は複数のプロセスに分かれて動いている。タブの中身を描画する部分、ブラウザ本体、GPU、拡張機能、ネットワークが、それぞれ独立したプロセスとして立ち上がる仕組みだ。この作りが採られている理由は速度よりも安全性の側にあり、Chromiumプロジェクトはサイト分離(Site Isolation)を次のように説明している。
Site Isolation is a security feature in Chrome that offers additional protection against some types of security bugs. It uses Chrome's sandbox to make it harder for untrustworthy websites to access or steal information from your accounts on other websites. 出典: chromium.org
要点は、別のサイトの中身は別のプロセスに分けて動かす、という設計思想にある。ここからタブの数え方についての結論が出る。同じサイトのタブを10枚開いても、多くの場合それらは1つのレンダラープロセスにまとまる。一方で、別々のサイトのタブを10枚開けば、プロセスは10個近くまで増える。同じ「10タブ」でも、メモリの使われ方はまったく違う。
この違いは日々の実感とも一致する。ドキュメントを読むために同じヘルプサイトのページを大量に開いても意外と平気なのに、Gmail、Slack、Notion、カレンダー、会議ツール、生成AIのチャットを1つずつ開いただけで急に重くなる。後者はドメインが全部違ううえ、どれも中身が止まらないアプリだ。タブを数えるより、ドメインの数と、そのうち常時動き続けているものの数を数えたほうが、実態に近い。
重くなる境目は「空きメモリの残量」ではない
アクティビティモニタを開いて空きメモリがほとんど無いのを見て慌てる人は多い。ところがmacOSは空きメモリを余らせない設計になっている。使われていないメモリは、ファイルのキャッシュなどに回されているほうが速い。だから空き容量の数字だけを見て良し悪しは決められない。
見るべきはメモリプレッシャーのグラフだ。これはメモリ資源の逼迫具合を色で示すもので、緑であれば余裕があり、黄色は圧縮などのやりくりが増えている状態、赤はメモリが足りていない状態を意味する。ここが黄色や赤に張り付いているときにだけ、タブの数を疑う価値がある。緑のままなら、遅さの原因はメモリ以外にある可能性が高い。
もう1つ見ておきたいのがスワップ使用領域だ。物理メモリに収まらない分はディスクへ退避される。macOSはメモリ圧縮も併用するため、スワップが少し出ているだけなら大きな問題にはならない。ただしスワップが増え続けている状態は、アプリの切り替えのたびに待たされる体感につながる。「Chromeが重い」と感じている時間の正体が、実際にはスワップからの読み戻しであることは珍しくない。
手元で測る2つの画面
原因を推測で決めないために、測る場所を2つに絞っておくと早い。
1つ目はChromeに内蔵されているタスクマネージャだ。macOSではメニューバーのウインドウからタスクマネージャを開く。タブごと、拡張機能ごと、プロセスごとにメモリフットプリントとCPUが並ぶので、どのタブが重いのかがその場で分かる。列の見出しを右クリックすると、JavaScriptメモリなどの項目を足せる。ここで上位に来ているものが、実際に効いている犯人だ。
2つ目がmacOSのアクティビティモニタで、メモリタブを開く。ここで確認するのは3つ。メモリプレッシャーの色、スワップ使用領域の増え方、そしてプロセス一覧をメモリ順に並べたときの顔ぶれだ。使い方の詳細はAppleサポートに手順が載っている。
Chromeのタスクマネージャを開いたときに戸惑いやすいのが、タブの名前とプロセスの対応だ。同じサイトのタブが1行にまとまっていることがあり、行数とタブ数が一致しない。これはサイト分離の設計どおりの挙動で、異常ではない。逆に、1枚のタブが複数の行に分かれて見えることもある。ページの中に別のサイトの埋め込み(広告、動画、地図、決済の枠など)が入っている場合で、埋め込みの側も別プロセスとして扱われるためだ。埋め込みが多いページが重くなりやすい理由も、ここにある。
この2つを並べて見ると、よくある勘違いが解ける。Chromeのプロセスは名前が同じものが大量に並ぶため、アクティビティモニタだけを見ると「Chromeが全部食っている」ように見える。実際にどのタブが重いのかは、Chrome側のタスクマネージャでしか分からない。順番としては、まずアクティビティモニタでメモリプレッシャーの色を確かめ、黄色や赤ならChromeのタスクマネージャで内訳に降りる。
メモリセーバーが効く場面と、効かない場面
Chromeには、しばらく触っていないタブのメモリを解放する仕組みが入っている。解放されたタブはタブバーに残ったまま中身だけが破棄され、次にクリックしたときに読み込み直される。設定のパフォーマンスの項目から切り替えられ、常に解放しないサイトを個別に指定することもできる。
効くのは、参照のために開いたきり放置している記事やドキュメントの類だ。この手のタブが全体の大半を占めている人にとっては、体感が変わる。
一方で効きにくい場面もはっきりしている。音を再生しているタブ、会議に接続しているタブ、画面共有中のタブは対象から外れる。フォームに入力途中の内容がある画面では、読み込み直しで書きかけが消えることを恐れて例外に登録することになり、結局メモリは戻らない。そして仕事で常時開いているWebアプリは、ほとんどがこの「解放されると困る」側に入る。つまり、この機能は読み物のタブには効き、仕事のアプリのタブには効きにくい。ブラウザタブ開きすぎでメモリが苦しいと感じている人の困りごとが後者に寄っているなら、設定を触るだけでは足りない。
消費を押し上げているのは、タブだけとは限らない
タブを減らしても軽くならないときに疑う先が3つある。
- 拡張機能。拡張機能は自前のプロセスを持ち、常駐して各ページに処理を差し込むものもある。Chromeのタスクマネージャで拡張機能の行を見れば、タブより重いものが混じっているかどうかがすぐ分かる。
- 映像と描画。オンライン会議、動画、デザインツールのキャンバスは、GPUプロセス側の負荷を押し上げる。この重さはタブの枚数とは関係が薄い。
- 止まらないWebアプリ。チャットやメールは、開いている限り定期的に通信し、画面を更新し、通知を出し続ける。閉じているタブとは負荷の性質が違う。
見分け方は難しくない。Chromeのタスクマネージャをメモリ順に並べ、上位5行だけを読む。そこに拡張機能の行が混じっていれば拡張機能、GPUの行が張り付いていれば描画、チャットやメールの行が並んでいれば常駐が原因だ。読み物のタブが上位に来ていることは、実際にはあまり多くない。
この3つを見分けないまま「タブが多いのが悪い」と決めてしまうと、閉じても閉じても軽くならない状態が続く。実際には、3個の重い常駐アプリと30個の静かな読み物タブでは、前者のほうが効いていることがある。
何個までなら平気か、を決める3つの条件
一律の上限は無い。ただし境目を決める条件は絞れる。
- 搭載メモリ。8GBのMacと16GB、32GBのMacでは、同じ使い方でも余裕がまったく違う。買い替えの選択肢を持っている人にとっては、ここが最も効く変数になる。
- 開いているものの中身。静的な記事のタブと、常時更新されるWebアプリのタブは、同じ1タブでも重さが違う。
- ブラウザ以外のアプリ。エディタ、仮想環境、写真や動画の編集ソフトを同時に動かしているなら、ブラウザに割ける分はその分減る。
搭載メモリについて補足すると、Appleシリコンを積んだMacのメモリは購入後に増設できない。つまり、この条件だけは使い方の工夫では動かせない。8GBの機種で常時動くWebアプリを8個抱えるのと、32GBの機種で同じことをするのとでは、同じ助言が当てはまらない。手元の搭載量は、アップルメニューからこのMacについてを開けば確認できる。ここを踏まえずに一般的なタブ数の目安を当てはめると、機種の差を自分の使い方の問題として受け取ってしまう。
数を数える代わりに、症状から次の一手を決めるほうが実務的だ。
| いま起きていること | 見る場所 | 次の一手 |
|---|---|---|
| 切り替えのたびに一瞬固まる | メモリプレッシャーとスワップ | 重い常駐タブを窓ごと分ける |
| 特定のサイトを開くと重い | Chromeのタスクマネージャ | そのタブだけを別に隔離する |
| 何を閉じても軽くならない | 拡張機能の行 | 使っていない拡張機能を外す |
| タブを探すのに時間がかかる | 1日の切り替え回数 | 置き場所の設計を変える |
最後の行だけは、メモリの話ではない。しかしブラウザタブ開きすぎで困っている人の相談を分解すると、実際にはこの「探す時間」が本丸であることが多い。メモリは、その症状として現れているだけだ。
1つの窓にすべてを積む構造そのものを疑う
タブを閉じる運用でしのげるのは、開いているものの大半が読み物であるうちだ。仕事のWebアプリが6個や8個になり、どれも閉じられないとなった時点で、問題はメモリ管理から置き場所の設計へ移る。1つの窓の中に全部を積んでいる限り、タブは1列に並び続け、探す手間と誤クリックは数に比例して増えていく。
この段階で選択肢になるのが、サービスごとに窓とアイコンを与えてアプリごとに独立したワークスペースにしてしまう考え方だ。案件や役割の単位でまとめる方法はワークスペースに整理されており、ブラウザの機能のうち何を窓の中へ持ち込むのかの線引きはできることにまとまっている。手元で常時開いているサービスが対応しているかどうかは、入れる前に使えるアプリで確かめておくと判断が早い。
同じ考え方の道具どうしを比べるなら、機能一覧よりも直接の比較が速い。対応範囲の広さではWaveboxとの比較、無料のオープンソースとの線引きではFerdiumとの比較、窓の作り方の違いではShiftとの比較が判断材料になる。費用から絞りたい場合は料金を、導入前の細かい疑問はよくある質問を先に見ておくと、順番を間違えにくい。
なお、置き場所を変えたからといってメモリ消費そのものが消えるわけではない。動いているWebアプリの数が同じなら、必要なメモリの総量も大きくは変わらない。変わるのは、どれが何を使っているのかが窓の単位で見えるようになること、そして使っていない領域を丸ごと閉じる判断がしやすくなることだ。まずはアクティビティモニタの色を確かめ、黄色や赤が続くようなら、閉じる運用ではなく分ける設計に手を付ける順番になる。
よくある質問
タブは何個までなら大丈夫ですか?
一律の上限はありません。同じサイトのタブは1つのプロセスにまとまることが多く、別々のサイトのタブはそれぞれプロセスを持つため、数より中身が効きます。判断はアクティビティモニタのメモリプレッシャーで行い、緑のままなら数が多くても支障は出にくく、黄色や赤が続くなら常時動くWebアプリの数を減らすか、置き場所を分ける段階です。
どのタブがメモリを使っているか調べる方法は?
Chromeのタスクマネージャを使います。macOSではメニューバーのウインドウから開くと、タブごと拡張機能ごとにメモリフットプリントとCPUが並びます。アクティビティモニタだけでは同じ名前のプロセスが並ぶだけで内訳が分かりません。全体の逼迫はアクティビティモニタ、内訳はChrome側、という順で見ると原因が絞れます。
メモリセーバーを有効にすれば解決しますか?
読み物のタブが大半なら体感が変わります。ただし音を再生中のタブや会議中のタブは対象外で、入力途中のフォームがある画面は読み込み直しで内容が失われることを避けるために例外登録することになります。仕事で常時開くWebアプリはこの例外側に入りやすいため、その用途では効果が限られます。
メモリを増設できないMacではどうすればよいですか?
搭載メモリを変えられない場合は、同時に動かすものの数を減らす方向で調整します。使っていない拡張機能を外す、会議や動画のタブを使い終わったら閉じる、常時開くWebアプリを役割ごとに別の窓へ分けて必要な組だけを開く、といった順です。読み物のタブは解放機能に任せ、判断はスワップ使用領域の増え方で確かめます。