メモリ使用量を3割以上削減!? Microsoft Edgeの新機能「スリーピングタブ」を調査してみたWindows 10 The Latest

Chromium版Microsoft Edgeのバージョン89で導入された「スリーピングタブ」機能の効果を調べてみた。「スリーピングタブ」は、非アクティブな状態のタブをスリープして、メモリ使用量やCPU使用率を削減する機能だ。今回は、メモリ使用量に着目して、どの程度の効果があるのか調べてみた。

» 2021年03月22日 05時00分 公開
[小林章彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows 10 The Latest」のインデックス

連載目次

Chromium版Microsoft Edgeで実装された「スリーピングタブ」とは Chromium版Microsoft Edgeで実装された「スリーピングタブ」とは
Chromium版Microsoft Edgeバージョン89で非アクティブなタブをスリープさせることで、メモリ消費量/CPU使用率を低減させる「スリーピングタブ」が導入された。どの程度効果があるのか検証してみた。

 2021年3月9日にMicrosoft Edge(以下、旧Edge)のサポートが終了し、2021年4月には旧Edgeを削除する更新プログラムが提供されるという。以降、Windows 10の標準Webブラウザは、ChromiumベースのMicrosoft Edge(以下、Chromium版Edge)になる。

 既にChromiumベースのWebブラウザとしては、Google Chrome(以下、Chrome)が大きなシェアを持っており、その中でChromium版Edgeは存在価値を示せるのか疑問も持たれていた。

 しかし、Chromium版Edgeはバージョンアップを重ねるごとに、Chromeにはない機能が実装されるようになり、独自性が高まっている。例えば、Tech TIPS「Microsoft EdgeでWebページ全体をキャプチャーする」で紹介したWebキャプチャ機能や、Tech TIPS「気付けば『タブ』だらけなあなたに朗報? Chromium版Edgeの新機能『垂直タブ』を試してみる」で紹介した垂直タブといった機能だ。

 Chromium版Edgeバージョン89では、さらに魅力的な機能「スリーピングタブ(Sleeping Tabs:タブのスリープ状態機能)」が実装されている。この「スリーピングタブ」は、Chromiumで実装されている「フリージング(freezing)技術」をベースに開発されており、非アクティブなタブをスリープしてメモリ使用量やCPU使用率の低減を図るというものだ。原稿執筆時点では、Chromeには実装されていない、Chromium版Edgeの独自機能となっている。

 本稿では、この「スリーピンタブ」がどのような機能なのか、どういった効果があるのかについて調べていく。また、同様にメモリ使用量/CPU使用率を下げる「タブディスカーディング(Tab Discarding:タブの廃棄)」との違いについても見ていく。

Webブラウザのメモリ使用量は意外と大きい

 Webブラウザで作業を行っていると、いつの間にか多くのタブが開いた状態となっていることはないだろうか。このような状態では、WebブラウザによるメモリやCPUの使用量が増え、Windows 10自体が重くなり、他のアプリケーションを開いたり、切り替えたりする際に時間がかかるようになる。特に最近では、Webページに多くの画像が用いられ、ビデオやスクリプトなどが使われ、リッチになっていることから、Webブラウザのメモリ使用量が増えてきている。

 例えば、Facebookの場合、表示しているページなどにもよるが、133MBほどメモリを消費している(FacebookのWindows Insiderページを表示した場合)。こうしたWebページを10サイトほど開くだけで、1GB以上のメモリが消費されることになる。タスクマネージャーの[プロセス]でメモリ使用量やCPU使用率を見ると、意外なほどWebブラウザによって消費されていることに驚くはずだ。

Webブラウザのメモリ使用量は意外と大きい Webブラウザのメモリ使用量は意外と大きい
Webページ自体の容量が大きくなっていることに加え、ページ表示の高速化のためにページ内のリンク先を先読みしてキャッシュするなどの機能により、Webブラウザのメモリ使用量は増えている。調べごとをしていて複数のWebページを開くだけで、すぐに1GB以上のメモリが消費されてしまう。

 そこで、導入されたのが「スリーピングタブ」である。タブがアクティブではない(非アクティブ)状態で指定した時間が過ぎると、自動的にタブがスリープ状態になり、メモリ消費量やCPUの使用率が抑えられるというものだ。

 タブがスリープ状態になるといっても、タブが閉じられるわけではなく、リソースの使用を最小限に抑えるために、スクリプトなどの実行を一時停止するものだ。タブをアクティブにすると、Webページの動作などが再開される。

 当然ながら、非アクティブなタブがスリープ状態になると、バックグラウンドでストリーミングにより音楽を再生していたり、Web会議中に別タブで資料を見ている状態だったりすると音が止まってしまうことになる。そこで、「スリーピングタブ」では、音が出力されているWebページなど、スリープ状態になると都合の悪いWebページについては、非アクティブであってもスリープ状態とはならないようになっている。

 また、設定によって、特定のWebページをスリープ状態としない(除外する)こともできる。

 デフォルトでは、スリーピングタブ機能は有効になっており、2時間アクティブにしていないとスリープ状態になる。除外するWebサイトなどの指定もないので、場合によってはChromium版Edgeが自動的にバージョンアップされたことで、スリーピングタブ機能が働き、特定のWebページの表示がおかしくなっている可能性もある。最近表示がおかしくなったと感じるのであれば、スリーピングタブ機能が原因の可能性があるので、後述の方法でスリーピングタブを無効にしたり、表示がおかしくなるWebサイトを除外するように設定したりするとよい。

スリーピングタブ機能を設定する

 スリーピングタブ機能は、前述の通り、デフォルトで有効になっており、特に設定しなくても、非アクティブ状態で2時間が経過するとタブがスリープ状態になるようになっている。

 スリープするまでの時間を短くしたり、無効化したりするには、[設定]ページを開いて行う。それには、Edgeのウィンドウ右上の[…]アイコンをクリックして、メニューで[設定]を選択する。新しいタブで[設定]ページが開くので、左ペインで[システム]を選択する(アドレスバーに「edge://settings/system」と入力してもよい)。無効化するには、右ペインの「リソースの節約」欄の「スリープタブでリソースを保存する」のスイッチを「オフ」にする(デフォルトで「オン」)。

 また、スリープ状態に移行するまでの時間は、「スリープタブでリソースを保存する」のスイッチを「オン」の状態にすると、「非アクティブなタブを、……」のプルダウンリストで選択可能になる(デフォルトは2時間)。時間は、5分/15分/30分/1時間/2時間/3時間/6時間/12時間から選択可能だ。

スリーピングタブの設定を変更する(1) スリーピングタブの設定を変更する(1)
アドレスバーの右側にある[…]アイコンをクリックし、メニューで[設定]を選択する。
スリーピングタブの設定を変更する(2) スリーピングタブの設定を変更する(2)
左ペインで[システム]を選択し、右ペインの「リソースの節約」欄にある「スリープタブでリソースを保存する」のスイッチを「オフ(有効)」または「オフ(無効)」にする。このスイッチが「オン」になっている場合は、スリープ状態になるまでの時間の設定が可能だ。

 また、スリープ状態にしたくないサイトは、「これらのサイトをスリープ状態にしない」の[追加]ボタンをクリックして、ドメイン名を指定すればよい。

除外サイトを追加する(1) 除外サイトを追加する(1)
[設定]−[システム]ページを開き、「リソースの節約」欄にある「これらのサイトをスリープ状態にしない」の[追加]ボタンをクリックする。[サイトの追加]ダイアログが表示されるので、ここで除外したいサイトのドメイン名を入力して、[追加]ボタンをクリックする。
除外サイトを追加する(2) 除外サイトを追加する(2)
追加したサイト名は、「これらのサイトをスリープ状態にしない」の下に一覧表示される。サイトを削除したい場合は、サイト名の右側にある[…]をクリックして、メニューで[削除]を選択すればよい。

タブがスリープ状態かどうか判別する方法

 設定した時間が経過すると、タブのアイコンがグレーアウトして、スリープ状態になっていることを示される。また、スリープ状態になったタブにマウスホバー(マウスポインターを重ねる)すると、「このタブはリソースを節約するため、スリープ状態にしています」と表示されることで確認できる。

タブがスリープ状態かどうか判別する タブがスリープ状態かどうか判別する
タブがスリープ状態になると、タブアイコンがグレーアウトする。また、タブにマウスホバーすると、スリープ状態であると示される。

スリーピングタブ機能の効果

 MicrosoftのWindows Blog「Sleeping Tabs in Microsoft Edge: Delivering better browser performance」によれば、メモリ使用量で32%、CPU使用率で37%の削減効果があるとしている。

 タブごとのCPU使用率を計測するのは難しいので、ここではメモリ使用量に着目して、幾つかのWebページで計測して効果を確かめてみた。[設定]−[システム]ページの「リソースの節約」欄で、「非アクティブなタブを、指定された時間が経過した後、スリープ状態にします」を[5分間の非アクティブ状態]に設定して動作を確認している。

 下表のWebページを開いた状態にしつつ、[設定]ページをアクティブにして、他を非アクティブな状態にして計測を行っている。Chromium版Edge全体のメモリ使用量は、Windows 10のタスクマネージャーで確認した。また、タブごとのメモリ使用量は、Chromium版Edgeを開いた状態で[Shift]+[Esc]キーを押して、ブラウザータスクマネージャーを起動して調べた。

Webページ スリープ前 スリープ後 15分後
@IT 56,320KB 54,708KB 54,708KB
Facebook 56,252KB 56,024KB 56,024KB
Googleマップ 104,184KB 101,284KB 101,284KB
Outlook.com 111,440KB 111,444KB 109,316KB
[設定]ページ 33,880KB 34,788KB 35,148KB
テストに用いたWebページとメモリ使用量の推移
タブごとのメモリ使用量はサブフレームの分を含む。[設定]ページはアクティブな状態のため、スリープ状態にはなっていない。

 各タブでWebページを開いた後、ある程度メモリ使用量が安定した状態で、Chromium版Edge全体のメモリ使用量は398.3MBだった。5分ほど経過後、非アクティブなタブにマウスホバーして「スリープ状態」になっていることを確認し、その際のメモリ使用量を確認したところ、348.4MBになっていた。約13%のメモリ使用量の削減効果があったことが分かる。

スリープ前のタスクマネージャー スリープ前のタスクマネージャー
Chromium版Edgeで上記のWebページを開いた後のメモリ使用量を調べてみた。スリープ状態前は、398.3MBであった。
スリープ後のタスクマネージャー スリープ後のタスクマネージャー
アクティブな状態の[設定]ページを除き、開いているタブがスリープ状態になったことを確認し、タスクマネージャーでメモリ使用量を確認してみたところ、348.4MBまで減っていた。

 そのままChromium版Edgeを放置した状態で観察していたところ、徐々にメモリ使用量が下がっていった。スリープしてから15分ほど経過したメモリ使用量は、272.7MBとなり、Windows Blogで述べられている32%のメモリ使用量の削減が実現されていた。ブラウザータスクマネージャーを見る限り、スリープ時点と15分経過時点でタブごとのメモリ使用量には、それほど違いがなかった。スリープになった後でも、徐々にメモリ使用量を削減しているか、Chromium版Edgeが確保していたメモリが解放されたことなどによって、メモリ使用量が減ったのではないかと思われる(先読みしているWebページのキャッシュデータを解放するなどしている可能性もある)。

スリープして15分経過した後のタスクマネージャー スリープして15分経過した後のタスクマネージャー
タブがスリープ状態になってから、さらに15分結果した後にタスクマネージャーで確認してみた。その結果、さらにメモリ使用量は、272.7MBまで減っていた。

タブディスカーディングとの違い

 Chromium版Edgeのメモリ使用量削減機能には、スリーピングタブの他にも、「タブディスカーディング(Tab Discarding)」と呼ばれるものもある(「Discard」は「破棄する」「廃棄する」という意味)。この機能は、Chromium版Edgeだけでなく、Chromeでもサポートされている。

 タブがディスカーディングされると、タブは残るものの、実際には表示されていない状態となり、メモリ消費はほとんどなくなる。ブラウザータスクマネージャーからも、タブがタスクの一覧から消えてしまう。

 タブを再び開くと、Webページの再ロードが実行される。これにより、大幅にメモリの消費量を抑えることができる。一方で、Webページの再ロードが行われるため、タブのスリーピングに比べてアクティブにしたときに表示まで時間がかかってしまう。

 タブスリーピングと同様、音が出力されているWebページはディスカーディングされない。また、入力フォームなどがあるWebページがディスカーディングしてしまうと、入力したものが自動的にリセットされてしまう危険性もあるのだが、編集部で試した限り、入力フォームがあるWebページはディスカーディングの対象にならないようだ。

 タブディスカーディングは、設定で「オフ」にすることができず、Webサイトを除外することもできない。どのような条件でディスカーディングされるかも不明だ。

 Chromium版Edgeでは、一定時間アクティブにならないと、自動的にディスカーディングされるようだ(4時間程度非アクティブな状態だとディスカーディングされるようだ)。これにより、Chromium版Edgeを使用しない状態で放置しておくと、自動的にメモリ使用量やCPU使用率が大幅に下がることになる。

 なお、ディスカーディングしたタブにマウスホバーした際の表示は、Webページのタイトルのままである。タブを開いた際に、Webページが再ロードされることで、ディスカーディングされていたことが分かる(ブラウザータスクマネージャーを見ると、タスクの一覧にタブが表示されないので、これでも判断できる)。

タブディスカーディングが行われた状態 タブディスカーディングが行われた状態
非アクティブな状態で4時間ほど経過したタブには、ディスカーディングが実行され、ブラウザータスクマネージャーのタスクからそのタブの名前が消えた(メモリが使われなくなった)。アドレスバーに「edge://discards/」と入力し、ディスカーディングの状態を見たところ、アクティブなタブ([設定]ページ)と、入力フォームがあるページ(https://protonmail.com/のメールアドレス作成フォーム)以外は、ディスカーディングされていた。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。