現在のWebサイトでは優れたユーザー体験を実現するため、JavaScriptは不可欠の存在です。反面WebブラウザでJavaSciprtを実行すると、デバイスの消費電力が増え、ノート型のコンピューターの場合、バッテリーの持続時間が短くなる原因ともなっています。
Googleはこの問題を解決するため、Chromeのバックグラウンドタブで実行されるJavaScriptを抑制し、バッテリー持続時間を改善できるかどうかのテストを実施している事がわかりました(gHacks、TheWindowsClub)。
Chromiumのエンジニアは、人気サイトがバックグラウンドで行っているタスクを分析し、JavaScriptのタイマーから多くの作業が行われていることを突き止めます。しかしそれらの作業はユーザーにとってあまり価値のないものであることが多く、タイマーからのウェイクアップ回数を減らすことで、バッテリー持続時間が改善できるのではないかとの判断が行われたのです。
Googleはいくつかの実験を行い、JavaScriptの抑制によってバッテリー持続時間がかなり改善できるという事実を示しています。
例えば以下のような実験が行われています。
実験1: 36の人気サイトをバックグランドで表示。about:blankがフォアグラウンド。
- 現状: 放電までの中央値6.4時間
- 抑制: 放電までの中央値8.2時間
実験2: 36の人気サイトをバックグランドでタブで表示。YouTubeがフォアグラウンド。
- 現状: 放電までの中央値4.7時間
- 抑制: 放電までの中央値5.3時間
条件によって異なりますが、0.5〜2時間程度、持続時間が伸びていることが分かります。
現在JavaScriptの抑制機能は、Chrome Canaryビルドに組み込まれていて、フラグによって有効にできます。有効にする手順は以下の通りです。
- chrome://flagsを開く。
- 「Throttle Javascript timers in background.」を検索。
- フラグを「Enabled」に変更。
- ブラウザを再起動。
有効にすると、DOMタイマーからのウェイクアップは、5分間非表示にしたページの場合、1分間に1回に制限されます。
ただし、フラグを有効にすることでバッテリー持続時間が長くなることが期待できるかわりに、これまで正常に動作したWebサイトで何らかの障害が発生することも考えられます。このためGoogleはエンタープライズポリシーを導入し、企業システムでChromeがこれまで同様に動作する事を保障する仕組みを提供します。
この機能はMicrosoft Edge、Brave、 Vivaldi、Operaなど他のChromiumベースのブラウザでも利用可能になるはずですが、正式な導入時期は今のところ不明です。