ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

Android プラットフォームにおけるソフトウェアレベル消費エネルギー解析

南山大学情報理工学部 講師 横山哲郎さん

Ustreamはこちら。http://www.ustream.tv/recorded/6935498

なぜ消費電力が問題か?

使用可能時間に不満

  • リチウムポリマー・リチウムイオン電池の容量は劇的に増えるわけではない
  • 一方、電池を食うデバイスが増えた
  • 限られた容積に入る電池が限られている(容量的にも)

何が電力を消費するのか?

  • GPS/Wifiをオフ、Airplaneモード 0.05A未満
  • LCDは輝度によるが50〜200mA弱
  • WiFiは大きい。150mA強(CPUも150mA程度)

YouTube視聴時 550mA強

電池の持ち時間

  • 総容量÷550mA = ?で計算
  • 1時間に4,5分、メールやブラウジングをやると24時間ぐらいもつ(1時間に60mA)

バックグラウンドアプリがあれば1時間に100mA程度になってしまう。

ソフトウェアでできること

  • 模索中だが、効果が高い手法を4つ

その1:性能向上⇒実行時間の短縮、ほぼ消費電力は実行時間で近似できる。
その2:通信制御⇒ネットワークの通信は重い。CPUと比べても1ビット送信単価(ナノジュール)は1000倍差
(あと2つ聞きそびれる…)

3Gなどは、圧縮をがんばって送ったほうがいい。Andoridでも簡単にできる(gzipフィルタなど)

圧縮したデータを受信して解凍することで消費エネルギーが下がる。圧縮方式で消費エネルギーに差。

  • 消費エネルギーはメモリやリソース、制限によって最適なアルゴリズムが変わる。

適切なデバイスによる情報取得

  • GPS・ネットワークから位置情報を取得できる。

GPSだと2秒後かも、1分後かも、時間がかかる可能性がある。ネットワークで2秒でとれたら…?
→要求される内容QOSとの比較が必要です

型による最適化

  • データの持ち方で( Div W や Div Int)など計算コストが変わってくる

改善提案

  • double演算をFloat演算に変更する

→ 30〜90%の負荷削減量。消費エネルギーについては、CPU最適化が良いアプローチ。

  • 動的に電力を管理するDPMを導入

キー入力がなければ、省電力モードへ遷移。HTC Magicでもセンサデバイスのデータ取得タイミングなど細かく設定できるので、消費電力に影響。