Windows 10ユーザーズ・ワークベンチ
バッテリ喰らいの犯人を探す
(2016/2/10 06:00)
モバイルノートPCのバッテリ駆動時間は、ハードウェアそのものの消費電力にも影響を受けるが、利用するソフトウェアによってもかなり変わってくる。少しでも長い時間バッテリ運用したいのがモバイルユーザーの願いだろう。今回は、Windows 10の消費電力管理機能について見ていこう。
2種類のスタンバイとネットワーク接続
多くの場合、モバイルノートPCのバッテリを多く消費するのは、ディスプレイのバックライトだ。つまり、PCをインタラクティブに使わなければバッテリは驚くほど長持ちする。だが、それでは意味がないことは誰もが分かっている。
バッテリ駆動するWindows 10 PCは、その形状に関わらず、2種類に分けて考えることができる。「InstantGo」対応機か、そうでないかだ。
InstantGo対応機は、かつて「Connected Stanby」と呼ばれていた機能に対応したPCデバイスだ。InstantGoに対応しているかどうかは、コマンドプロンプトで、「C>powercfg /a」と入力すれば分かる。
InstantGoに対応しているデバイスであれば、サポートされているスリープ状態として、「スタンバイ(S0低電力アイドル)」となるが、対応していない場合は、「スタンバイ(S3)」となる。つまり、同じスタンバイでも「S3」によるものか、「S0低電力アイドル」によるものかで決まるのだ。
ここにある「S0低電力アイドル」は、Intelの第4世代Coreプロセッサ、いわゆるHaswell以降で実装されたプロセッサのステータスで、Intelでは「S0ix」と称している。S3スタンバイからの復帰に比べて大幅に高速に復帰することができるのが特長だ。このS0低電力アイドルに対応し、さらに周辺デバイスもそれをサポートしているPCがInstantGo機だ。
InstantGo対応機は、従来のS3スリープ状態をサポートしていない。その恩恵として、瞬時に復帰ができるのだ。モバイルノートPCを使い終わるたびにシャットダウンしているユーザーにはありがたみがない機能かもしれないが、再起動はするものではなくさせられるものというユーザーには、とにかく使いたい時に瞬時に使い始められる点でありがたい機能だ。
さて、「S0低電力アイドル」には、さらに2種類の状態がある。「ネットワークに接続されています」、「ネットワークが切断されました」の2つだ。
Windows 10では、スリープ時にWi-Fiを接続したままにするかどうかを、電源接続時、バッテリ駆動時それぞれでユーザーが設定することができるようになったからこそ、このような2種類のスタンバイ状態が存在する。
Windows 8時代、以前のInstantGoでは、スリープ中のWi-Fi接続を禁止することができず、スリープ時もずっと通信が継続していたからこそ、Connected Standbyと呼ばれていたのだが、今はむしろ、スリープからの復帰の速さが重要なコンセプトになっている。だからこそInstantGoという名称に変わったのだろう。
「ずっと繋がっている」から「すぐに使える」に変わったコンセプト
スリープ中にネットワークに接続して、どんな良いことがあるのだろう。実際には、日常的に使っているスマートフォンは、画面が消えている状態でもネットワークに繋がったままだ。そうでなくては電話を着信することもできないし、クラウドからプッシュされてくるメッセージを受け取ることもできない。アプリによってはバックグラウンドで定期的にキャッシュを更新するようなものもある。
Windowsデバイスも、スマートフォンのように寝ている間も通信ができるようにしておき、さまざまなプッシュ通知を受けられるようにしようという元々の意図があった。それを目指して実装されたのがConnected Standbyだ。そして、その延長線上にあるのがInstantGoというわけだ。
しかし、Haswell以降のプロセッサなら全てのPCがInstantGoに対応しているわけではない。周辺デバイスのハードウェア、そして、そのドライバの対応が必要になるため、対応機は一部に限られる。今のところ、殆ど全てのAtom搭載機(タブレット機やスティック型PCなど)を始め、Microsoftの「Surface 2」以降などがそうだ。かつては、パナソニックの「レッツノートMX3」や、ソニー時代の「VAIO Duo 13」などがあったが、両機ともに生産終了になってしまっている。
バッテリセーバーはストアアプリのみを制御
InstantGo対応/非対応に関わらず、PCを使う限り、外部から電源を確保できなければバッテリを消費するしかない。だが、使い方によってどうもバッテリの減り具合が違うと思ったことはないだろうか。「あのアプリを使うとバッテリが早く減る」とか、「きっとこのアプリは処理が重いからバッテリを多く消費するんだろう」など、実際にPCを使っている時の既成事実として感じているかもしれない。
Windows 10には、まず、バッテリの節約機能が用意されている。
これは、バッテリの残り容量がユーザーが指定した割合になった時に、アプリのバックグラウンド稼働を禁止してバッテリの消費を抑えるためのものだ。特定のアプリだけを例外にすることもできるようになっている。デフォルトではバッテリの残り容量が20%以下になった時に、画面の明るさを下げ、バックグラウンド実行を禁止する。
ただし、バックグラウンド実行をコントロールできるのは、いわゆるストアアプリだけで、レガシーなデスクトップアプリはその対象ではない。アプリ自身がバックグラウンド実行の有無をコントロールする機能を実装するもの以外は、バッテリ使い放題状態となる。
デスクトップアプリを含む個々のアプリがどのくらいバッテリを消費しているかは、「バッテリの使用状況」を確認することで分かる。全体で、「システム」、「ディスプレイ」、「Wi-Fi」の各項目について、どのくらいのバッテリを消費したのかが分かるほか、アプリケーションごとに同様のバッテリ消費の状況を確認することができる。
ここ24時間、48時間、1週間の3種類の期間で状態をチェックできるので、どのアプリがバッテリを大量に使っているかが分かるはずだ。
瞬時の復帰がもっとも大事
ユーザーの自衛手段としては、バッテリを多く消費するアプリケーションはできるだけ起動しないという方法しか取れない。フォアグラウンド時、バックグラウンド時、どちらにおいてもバッテリをたくさん消費するアプリケーションは少なからずある。
例えば、GoogleのChromeブラウザは拡張機能の多くがバックグラウンドで稼働するほか、フォアグラウンドにいる場合も、Edgeなどほかのブラウザに比べて多くのバッテリを消費するようだ。Windows 10の表示を信じるなら、バックグラウンド実行時の消費は思ったほどではなく、フォアグラウンド時のバッテリ消費がかなり多いようだということが分かる。
手元の環境では、バッテリを少しでも長持ちさせたい場合には、できるだけChromeを使わないようにすることで駆動時間を延命させることができた。いつも使っているアプリケーションを使えないのは不便だが、背に腹は替えられない場合もある。
もっとも、バッテリを消費するのはウィンドウとして目に見えるアプリだけではない。各種のサービス類もバッテリを消費する。これらについては、タスクマネージャでバックグラウンドプロセスを表示させ、CPU時間やディスクアクセスの量を確認することで、バッテリの消費を類推すると良いだろう。
今は、誰もがPCと共にスマートフォンを持ち歩いている。スマートフォンはクラウドからのプッシュの通知を受け、そのことをユーザーに知らせてくれる気づきを与える役割をする。その気づきに対して、ユーザーはスマートフォンで反応することもできれば、デバイスをPCに交替させ、スマートフォンでは面倒な作業をPCの広い画面と高い処理能力を使って行なう場合もある。
今、スマートフォンに外部ディスプレイを繋いで、大画面でPCのように作業できるWindows 10 Mobileの「Continuum」が話題になっている。それはそれで重要かもしれないが、スマートフォンとPCのように異なるデバイスの間での連続性こそ確保して欲しいとも思う。クラウドを使えばそれはカンタンにできるはずだ。
そういう意味では、モバイルPCにおいて、使っていない時にネットワークに接続されていたり、それを使ってアプリが通信を継続したりするということはそれほど重要なことではなく、それよりも、瞬時の復帰に舵を切ったInstantGoは、その方向性を評価して良いだろう。InstantGoの恩恵を受けられるのはストアアプリだけだったことで、ニーズが捉えきれず各社の対応は進まなかったが、コンセプトの変更とローコスト化、利用スタイルの変化によって、今後は少しずつ状況も変わっていくのではないだろうか。