Android プラットフォームにおけるソフトウェアレベル消費エネルギー解析
Ustreamはこちら。http://www.ustream.tv/recorded/6935498
何が電力を消費するのか?
⇒ YouTube視聴時 550mA強
電池の持ち時間
- 総容量÷550mA = ?で計算
- 1時間に4,5分、メールやブラウジングをやると24時間ぐらいもつ(1時間に60mA)
バックグラウンドアプリがあれば1時間に100mA程度になってしまう。
ソフトウェアでできること
- 模索中だが、効果が高い手法を4つ
その1:性能向上⇒実行時間の短縮、ほぼ消費電力は実行時間で近似できる。
その2:通信制御⇒ネットワークの通信は重い。CPUと比べても1ビット送信単価(ナノジュール)は1000倍差
(あと2つ聞きそびれる…)
適切なデバイスによる情報取得
- GPS・ネットワークから位置情報を取得できる。
GPSだと2秒後かも、1分後かも、時間がかかる可能性がある。ネットワークで2秒でとれたら…?
→要求される内容QOSとの比較が必要です
型による最適化
- データの持ち方で( Div W や Div Int)など計算コストが変わってくる
改善提案
- double演算をFloat演算に変更する
→ 30〜90%の負荷削減量。消費エネルギーについては、CPU最適化が良いアプローチ。
- 動的に電力を管理するDPMを導入
キー入力がなければ、省電力モードへ遷移。HTC Magicでもセンサデバイスのデータ取得タイミングなど細かく設定できるので、消費電力に影響。