Windows 10 の E3 (Energy Estimation Engine) を利用したバッテリー消費の調査について

こんにちは。 Surface 法人向けサポート担当の岩松です。

Windows 10 では、Energy Estimation Engine (E3) というバッテリーで動作するデバイス上で動作するサービスが搭載されており、電力消費がどのハードウェア コンポーネントやアプリケーションによるものかを調査できます。

この記事では、Surface でこの機能は利用してバッテリー寿命への影響を調査する例をご紹介します。

 

バッテリー消費を UI から確認する

 

E3 の機能は、UI からも手軽に利用することができます。

[設定] - [システム] - [バッテリー] と選択し、[アプリによるバッテリーの使用] を選択します。

これを確認することで、過去 1 週間など、特定の期間にバッテリーを多く消費したアプリを確認することができます。

170321e3battery1

 

より詳細なレポートでバッテリー消費を分析する

 

UI による表示では、ユーザー モードのアプリケーションのみが表示され、また、表示可能な期間も限定されています。

更に詳細な解析を行いたい場合は、 powercfg コマンドからレポートを生成します。

 

(1) 解析の準備

E3 のサービス (DPS) では、過去に遡って調査すること及び特定の期間のバッテリー消費を調査することができます。

 

特定の期間のバッテリー消費について調査する場合は、一度 E3 のサービス (DPS) を停止してデータベースをバックアップし、その後のサービスを再開してデータの記録を開始します。

(このサービスの開始タイミングからレポートを保存した時点までが解析できる期間となります。)

その場合、管理者権限のコマンド プロンプトから以下を実行します。

実行完了後、バッテリー消費量を検証したい動作を開始します。

 

cd C:\Windows\system32\sru

sc stop dps

ren srudb.dat surdb.dat.bak

sc start

 

(2) レポートの保存

バッテリー消費量を検証したい動作が完了したら、以下のコマンドでレポートを出力します。

 

powercfg /srumutil

 

レポートは、 srumutil.csv という名称で保存されます。/xml オプションをつけることで xml 形式での保存も可能です。

このファイルは Excel などの表計算ソフトで開くことができ、以下のようなデータを参照・分析することができます。

 

AppId: 電力消費が属するシステム内のプロセスの名称

MeasuredPower: Power Meter chipを持っているかどうか。

Foreground: フォアグラウンドの動作かバックグラウンドの動作か

ScreenOn: 画面が点灯していたかどうか

CPUEnergyconsumption: CPU によるバッテリー消費。約80パーセントの確実性があるデータです。

NetworkEnergy: ネットワークによるバッテリー消費。そこまで正確な数値ではない。

OtherDvicesEnergyConsumption: その他のデバイスによるバッテリー消費。

TotalEnergyConsumption: 全てのバッテリー消費の合計

 

例えば、Excel のピボット テーブル機能で、AppId を列に、TotalEnergyConsumption を合計の値に指定して表示することで、電力消費の多いプロセスを特定することができます。

 

これらの機能を、ご利用の環境でのバッテリーの問題の調査にぜひご活用ください。