マルチプロセスアーキテクチャ:なぜ各タブがこんなに高コストなのか
Chrome はタブを互いに隔離するように最初から設計されています。開くすべてのタブは、独自の V8 JavaScript エンジンインスタンス、独自のレンダリングエンジン(Blink)のコピー、独自のメモリヒープを持つ、独立したオペレーティングシステムプロセス内で動作します。これは、単一のプロセスがすべてを処理していた古いブラウザとは根本的に異なります。
このアーキテクチャのメリットは実在します。タブがクラッシュしてもブラウザ全体がダウンしません。サイトが悪意のあるコードを実行しようとしても、独自のプロセス内でサンドボックス化され、他のタブのデータに簡単にアクセスできません。セキュリティと安定性の両方が向上しています。
しかしコストも同様に実在します。すべてのプロセスにはオーバーヘッドがあります。オペレーティングシステムはそれを追跡し、スケジュールし、メモリを割り当てる必要があります。5タブの場合、オーバーヘッドは無視できます。50タブの場合、50以上の個別プロセスを実行しており、累積されたオーバーヘッドが Chrome のリソース消費の支配的な要因になります。
リソースコスト #1:RAM 消費
メモリはタブが多すぎることの最も目に見えるコストです。各タブプロセスは存在するだけで基本的な割り当て(プロセスインフラストラクチャだけで通常30〜50 MB)を必要とします。その上にページコンテンツがロードされます:HTML、CSS、JavaScript、画像、メディア。
シンプルなテキスト中心の記事でタブは60〜100 MB になります。Gmail、Figma、データダッシュボードのような複雑なウェブアプリケーションは単一のタブで 500 MB を超えることがあります。埋め込み動画プレーヤーや大規模な広告ネットワークを持つサイトは、各200〜400 MB を消費することが多いです。
| ページの種類 | タブあたりの一般的な RAM 使用量 | 例 |
|---|---|---|
| シンプル/静的ページ | 50-100 MB | Wikipedia、ブログ記事、ドキュメント |
| ニュース/メディアサイト | 150-300 MB | CNN、Reddit、YouTube(一時停止中) |
| ウェブアプリケーション | 200-500 MB | Gmail、Slack、Google ドキュメント |
| 重いウェブアプリ | 400-1000+ MB | Figma、Google スプレッドシート(大)、Jira |
| ストリーミング動画 | 300-600 MB | YouTube(再生中)、Netflix、Twitch |
Chrome の合計メモリ使用量がシステムの物理 RAM 容量に近づくと、オペレーティングシステムはスワップスペース(ディスク上の仮想メモリ)を使い始めます。ディスクアクセスは RAM アクセスよりも桁違いに遅く、これが深刻な速度低下を体験する時です:入力のラグ、タブ切り替えの遅延、応答しないインターフェース。
リソースコスト #2:CPU ウェイクアップ
タブを見ていないときでも、そのタブは真に休止状態ではありません。現代のウェブページは、定期的に CPU を起こすバックグラウンドアクティビティで満載です:
- JavaScript タイマー:通知バッジの更新やコンテンツの更新など、スケジュールに従ってコードを実行する setInterval と setTimeout の呼び出し。
- WebSocket 接続:リアルタイム更新のためのサーバーへの持続的接続(チャットアプリ、株価ティッカー、共同編集ツール)。
- サービスワーカー:キャッシュ、プッシュ通知、オフライン機能を処理するバックグラウンドスクリプト。
- CSS アニメーション:アニメーション要素はタブが表示されていなくてもレンダリングサイクルを継続します。
- アナリティクスとトラッキング:多くのサイトがユーザーエンゲージメントデータを報告する定期的なビーコンを実行しています。
Chrome はバックグラウンドタブのタイマーを1秒に1回以下に制限していますが、それでも各バックグラウンドタブが少なくとも1秒に1回 CPU を起動します。これを40のバックグラウンドタブで掛けると、タイマースロットリングだけで1秒あたり40回の CPU ウェイクアップになります。WebSocket とサービスワーカーを追加すると、負荷はさらに増大します。
この絶え間ないバックグラウンドアクティビティはノートパソコンのバッテリーをより速く消耗させ、完全に別のアプリケーションで作業しているときでもシステムが鈍く感じられます。
リソースコスト #3:拡張機能の注入オーバーヘッド
これはほとんどの人が見落とす要因です。コンテンツスクリプトを使用する Chrome 拡張機能は、訪問するすべてのページにコードを注入します。広告ブロッカー、文法チェッカー、ダークモードツールなど、ウェブページを変更する拡張機能は、すべてのタブのプロセス内でスクリプトを実行します。
コンテンツスクリプトを持つ拡張機能が5つ、タブが30個あれば、ブラウザ全体で拡張機能コードの150インスタンスが実行されています。各インスタンスのオーバーヘッドは通常小さい(5〜20 MB)ですが、乗算効果は大きいです。
拡張機能の乗算効果
5つのコンテンツスクリプト拡張機能 x 30タブ = 150の注入インスタンス。各々が10 MB 使用すると、タブ自体に加えて拡張機能だけで1.5 GB のメモリが消費されます。拡張機能の数かタブの数のどちらかを減らすことで、合計は乗算的に減少します。
速度低下は実際いつから始まるのか?
答えはシステムのハードウェアに依存しますが、一般的な構成に基づく典型的なしきい値は以下の通りです:
| システム RAM | 快適なタブ数の範囲 | 速度低下の開始 | 深刻な影響 |
|---|---|---|---|
| 4 GB | 5-10タブ | 約15タブ | 約25タブ |
| 8 GB | 15-25タブ | 約35タブ | 約50タブ |
| 16 GB | 30-60タブ | 約80タブ | 約120タブ |
| 32 GB | 60-120タブ | 約150タブ | 約250以上タブ |
これらの数値は、適度な数の拡張機能(3〜5個)とシンプルなページと複雑なページの混合を想定しています。重いウェブアプリはこれらのしきい値を大幅に低くします。Figma、複数の Google スプレッドシート、Slack を同時に実行すると、20タブが60タブのように感じられます。
対処法
Chrome が遅くなる理由を理解すると、解決策が直接見えてきます。アクティブなプロセスの数を減らす必要があり、それはアクティブなタブの数を減らすことを意味します。
解決策1:今使っていないタブを保存して閉じる
最も効果的な修正は最もシンプルでもあります。今アクティブに使っていないタブは、今メモリを消費すべきではありません。TabGroup Vault でタブグループを保存し、閉じて、実際に必要なときに復元しましょう。
これによりタブのプロセスが完全に排除されます:RAM なし、CPU ウェイクアップなし、拡張機能注入オーバーヘッドなし。タブが存在することと、タブが記憶されていることの違いです。
TabGroup Vault
価格:無料(5スナップショット) / $29 一括払い Pro
主なメリット:完全な構造でタブグループを保存し、閉じてすべてのリソース使用を排除
復元:ワンクリック復元で、すべてのタブ、グループ名、色が保存時のまま戻ります
解決策2:拡張機能の数を減らす
chrome://extensions で拡張機能を監査しましょう。各拡張機能について、毎日使うかどうか問いかけてください。使わないなら無効にしましょう。乗算効果を思い出してください:コンテンツスクリプトの拡張機能を1つ削除すると、すべての開いているタブでメモリが節約されます。30タブのセッションから1つの拡張機能を削除するだけで150〜600 MB 解放できる場合があります。
解決策3:タブグループを使って作業をバッチ処理する
すべてのタブを同時に開いておくのではなく、グループに整理して現在作業しているグループのみを展開しましょう。残りは折りたたみます。リソース使用量を完全に排除するわけではありませんが、Chrome は折りたたまれたグループのタブをより積極的にスロットリングし、どのグループを保存して閉じられるか判断しやすくなります。
解決策4:メモリセーバーを有効にする
Chrome のメモリセーバーモード(設定 > パフォーマンス)は非アクティブなタブをサスペンドしてメモリの一部を回収します。タブを完全に閉じるほど効果的ではありませんが、有効にすると手間ゼロです。現在の作業セットに含まれているが積極的に見ていないタブに対する保存して閉じる戦略の良い補完です。
解決策5:メディアとストリーミングタブを閉じる
動画やオーディオを再生しているタブは最もリソースを消費するものの一つです。一時停止中の YouTube タブでもデコードされた動画フレームをメモリに保持しています。視聴が終わったら、後で戻る予定でもストリーミングタブを閉じましょう。動画をブックマークするのに1秒かかり、数百メガバイトを節約できます。
全体像:タブの習慣を見直す
Chrome が遅くなる根本原因は、Chrome 自体であることはまれです。タブを記憶システムとして使用する習慣です。人々は物事を覚えておくためにタブを開いたままにします:読む記事、完了するタスク、確認するリファレンス。しかし開いているタブはデジタルメモリの中で最も高コストな形態の一つです。各タブは存在する毎秒、実際のシステムリソースを消費します。
移行すべきは、受動的なタブの蓄積からアクティブなタブ管理へです。必要なものを保存し、使っていないものを閉じ、オンデマンドで復元します。TabGroup Vault のようなツールがこれを実用的にし、グループを閉じてもタブ構造を決して失わないことを保証します。
具体的な最適化手順については、タブに焦点を当てた Chrome の高速化ガイドをご覧ください。Chrome のタブ容量のハードリミットについては、Chrome のタブ制限と処理可能なタブ数のデータをお読みください。