(57)【要約】【課題】アプリケーションソフトウェア単位の消費電力を精度よく測定すること。【解決手段】実行部１１０は、測定対象のアプリ１１１を含み同一の周辺ハードウェア１０１へアクセス可能な複数のアプリ１１１，１１２を実行する。測定部１２０は、実行部１１０により実行されるアプリ１１１による所定単位の各処理のうちの周辺ハードウェア１０１へのアクセスに対して、アプリ１１１と対応付けた識別情報を付与する。また、測定部１２０は、付与した識別情報に基づいて、周辺ハードウェア１０１へのアクセスのうちのアプリ１１１によるアクセスを検出する。そして、測定部１２０は、検出したアクセスに応じた消費電力に基づいて、アプリ１１１のアプリケーションソフトウェア単位の消費電力を算出する。【選択図】図１Ｂ
2015207128.tif 000002
【特許請求の範囲】
【請求項１】
同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
【請求項２】
前記測定部は、
検出した前記アクセスに応じた前記実行部における消費電力を、前記周辺ハードウェアへのアクセスによる前記実行部における所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項１に記載の装置。
【請求項３】
前記測定部は、
検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を、前記周辺ハードウェアへのアクセスによる前記周辺ハードウェアにおける所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項１または２に記載の装置。
【請求項４】
前記測定部は、
検出した前記アクセスによって動作を開始した前記周辺ハードウェアが、検出した前記アクセスとは異なる処理によって停止するまでの動作時間を検出し、
検出した前記動作時間と、前記周辺ハードウェアの動作時間あたりの消費電力を示す前記消費電力情報と、に基づいて、検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項３に記載の装置。
【請求項５】
同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、消費電力を測定する装置に関する。
【背景技術】
【０００２】
従来、端末の消費電力の分析において、メソッドごとの消費電力を算出する技術が知られている（たとえば、下記特許文献１参照。）。また、ユーザ端末がＷＥＢシステムとの間のセッションに用いるセッションＩＤを生成する技術が知られている（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９０４４７号公報
【特許文献２】特開２０１３−２３５４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、複数のアプリケーションソフトウェアが利用する周辺ハードウェアや共通システム処理において発生した消費電力がいずれのアプリケーションソフトウェアによるものか判別することが困難である。このため、アプリケーションソフトウェア単位の消費電力を精度よく測定することができないという問題がある。
【０００５】
１つの側面では、本発明は、アプリケーションソフトウェア単位の消費電力を精度よく測定することができる装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、前記実行部により実行される前記アプリケーションソフトウェアのうちの測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、を備える装置が提案される。
【０００７】
また、本発明の別の側面によれば、同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、前記実行部により実行される前記アプリケーションソフトウェアのうちの測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、を備える装置が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、アプリケーションソフトウェア単位の消費電力を精度よく測定することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１Ａ】図１Ａは、実施の形態１にかかる装置の一例を示す図である。
【図１Ｂ】図１Ｂは、図１Ａに示した装置における信号の流れの一例を示す図である。
【図１Ｃ】図１Ｃは、実施の形態１にかかる装置の変形例を示す図である。
【図１Ｄ】図１Ｄは、図１Ｃに示した装置における信号の流れの一例を示す図である。
【図２】図２は、実施の形態２にかかる端末の一例を示す図である。
【図３Ａ】図３Ａは、ソフト消費電力測定システムを適用した端末の構成の一例を示す図である。
【図３Ｂ】図３Ｂは、図３Ａに示した端末の構成における信号の流れの一例を示す図である。
【図４】図４は、測定対象の各消費電力の一例を示す図である。
【図５】図５は、セッション管理テーブルの一例を示す図である。
【図６】図６は、アプリ処理動作時間格納テーブルの一例を示す図である。
【図７】図７は、セッション処理動作時間格納テーブルの一例を示す図である。
【図８】図８は、セッションのハードウェアアクセス情報管理テーブルの一例を示す図である。
【図９】図９は、ハードウェア動作情報管理テーブルの一例を示す図である。
【図１０】図１０は、アプリＣＰＵ消費電力格納テーブルの一例を示す図である。
【図１１】図１１は、セッションＣＰＵ消費電力格納テーブルの一例を示す図である。
【図１２】図１２は、セッションのハードウェア消費電力格納テーブルの一例を示す図である。
【図１３】図１３は、ハードウェア制御消費電力基準値格納テーブルの一例を示す図である。
【図１４】図１４は、動作ハードウェア消費電力基準値格納テーブルの一例を示す図である。
【図１５】図１５は、アプリ動作開始時の処理の一例を示すフローチャートである。
【図１６】図１６は、システム共通処理の実行の一例を示すフローチャートである。
【図１７】図１７は、アプリの消費電力の算出処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかる装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
（実施の形態１にかかる装置）
図１Ａは、実施の形態１にかかる装置の一例を示す図である。図１Ｂは、図１Ａに示した装置における信号の流れの一例を示す図である。図１Ａ，図１Ｂに示すように、実施の形態１にかかる装置１００は、実行部１１０と、測定部１２０と、を備える情報処理装置である。
【００１２】
実行部１１０は、同一の周辺ハードウェア１０１へアクセス可能な複数のアプリケーションソフトウェア（以下、「アプリ」と称する。）を実行する。図１Ａ，図１Ｂに示す例では、実行部１１０は、同一の周辺ハードウェア１０１へアクセスするアプリ１１１，１１２を実行する。
【００１３】
実行部１１０は、たとえばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）などのプロセッサである。周辺ハードウェア１０１は、たとえば、装置１００の内部または外部の各ハードウェアのうちの、実行部１１０に対応するハードウェア（たとえばＣＰＵ）と異なるハードウェアである。周辺ハードウェア１０１へのアクセスは、後述する共通システム処理を介したアクセスであってもよいし、共通システム処理を介さないアクセスであってもよい。
【００１４】
測定部１２０は、実行部１１０によって実行されるアプリ１１１，１１２のうちの少なくともいずれかのアプリ単位の消費電力を測定する。ここでは、アプリ１１１，１１２のうちのアプリ１１１のアプリ単位の消費電力を測定する場合について説明する。
【００１５】
この場合に、測定部１２０は、実行部１１０により実行される測定対象のアプリ１１１による所定単位の各処理のうちの周辺ハードウェア１０１へのアクセスに対して識別情報（ＩＤ）を生成して付与する。この識別情報は所定単位の各処理ごとにユニークなものである。また、測定部１２０は、付与した識別情報をアプリ１１１と対応付けて記憶する。なお、測定部１２０は、周辺ハードウェア１０１へのアクセスに限らず、アプリ１１１による所定単位の各処理について識別情報を付与してもよい。所定単位は、一例としてはトランザクション単位とすることができる。
【００１６】
また、測定部１２０は、周辺ハードウェア１０１への各アクセスを監視し、周辺ハードウェア１０１への各アクセスのうちのアプリ１１１によるアクセスを検出する。このとき、測定部１２０は、アプリ１１１と対応付けた識別情報を用いることで、周辺ハードウェア１０１への各アクセスのうちのアプリ１１１によるアクセスを検出することができる。そして、測定部１２０は、検出したアプリ１１１によるアクセスに応じた消費電力に基づいて、アプリ１１１のアプリ単位の消費電力を算出する。
【００１７】
このように、実施の形態１によれば、周辺ハードウェアへのアクセスに対してアプリと対応付けた識別情報を付与することで、各アクセスがいずれのアプリによるものかが判別可能になる。これにより、アプリ単位の消費電力を精度よく測定することができる。
【００１８】
＜実行部における消費電力の導出＞
たとえば、測定部１２０は、検出したアプリ１１１によるアクセスに応じた実行部１１０における消費電力を導出し、導出した消費電力に基づくアプリ１１１の消費電力を算出してもよい。検出したアプリ１１１によるアクセスに応じた実行部１１０における消費電力は、たとえば、周辺ハードウェア１０１へのアクセスによる実行部１１０における所定の消費電力を示す消費電力情報に基づいて導出することができる。消費電力情報は、たとえば装置１００のメモリに記憶しておくことができる。
【００１９】
＜周辺ハードウェアにおける消費電力の導出＞
また、測定部１２０は、検出したアプリ１１１によるアクセスに応じた周辺ハードウェア１０１における消費電力を導出し、導出した消費電力に基づくアプリ１１１の消費電力を算出してもよい。検出したアプリ１１１によるアクセスに応じた周辺ハードウェア１０１における消費電力は、たとえば、周辺ハードウェア１０１へのアクセスによる周辺ハードウェア１０１における所定の消費電力を示す消費電力情報に基づいて導出することができる。消費電力情報は、たとえば装置１００のメモリに記憶しておくことができる。
【００２０】
この場合に、たとえば、測定部１２０は、検出したアプリ１１１によるアクセスによって動作を開始した周辺ハードウェア１０１が、検出したアプリ１１１によるアクセスとは異なる処理によって停止するまでの動作時間を検出する。検出したアプリ１１１によるアクセスとは異なる処理は、アプリ１１１による別の処理であってもよいし、アプリ１１２による処理であってもよいし、アプリ１１１，１１２と異なるソフトウェア（たとえばオペレーティングシステム）による処理であってもよい。
【００２１】
測定部１２０は、検出した周辺ハードウェア１０１の動作時間と、周辺ハードウェア１０１の動作時間あたりの消費電力を示す消費電力情報と、に基づいて、検出したアプリ１１１によるアクセスに応じた周辺ハードウェア１０１における消費電力を導出する。これにより、検出したアプリ１１１によるアクセスによって開始した周辺ハードウェア１０１の動作が継続する場合でも、検出したアプリ１１１によるアクセスに応じた周辺ハードウェア１０１における消費電力を導出することができる。
【００２２】
たとえば、測定部１２０は、検出したアプリ１１１によるアクセスによって動作を開始した周辺ハードウェア１０１と、このアクセスを識別する識別情報と、を対応付ける対応情報を生成する。これにより、測定部１２０は、生成した対応情報に基づいて、検出したアプリ１１１によるアクセスによって動作を開始した周辺ハードウェア１０１の動作時間を検出することが可能になる。
【００２３】
（実施の形態１にかかる装置の変形例）
図１Ｃは、実施の形態１にかかる装置の変形例を示す図である。図１Ｄは、図１Ｃに示した装置における信号の流れの一例を示す図である。図１Ｃ，図１Ｄにおいて、図１Ａ，図１Ｂに示した部分と同様の部分については同一の符号を付して説明を省略する。
【００２４】
実行部１１０は、同一の共通システム処理１０２へアクセス可能な複数のアプリを実行する。図１Ｃ，図１Ｄに示す例では、実行部１１０は、同一の共通システム処理１０２へアクセスするアプリ１１１，１１２を実行する。共通システム処理１０２は、たとえば共通システム処理１０２によって実行される処理である。共通システム処理１０２は、たとえば、装置１００の各アプリから呼出可能な関数などのサブルーチンである。
【００２５】
測定部１２０は、実行部１１０により実行される測定対象のアプリ１１１による所定単位の各処理のうちの共通システム処理１０２へのアクセスを識別する識別情報（ＩＤ）を付与する。また、測定部１２０は、付与した識別情報をアプリ１１１と対応付けて記憶する。なお、測定部１２０は、共通システム処理１０２へのアクセスに限らず、アプリ１１１による所定単位の各処理について識別情報を付与してもよい。所定単位は、一例としてはトランザクション単位とすることができる。
【００２６】
また、測定部１２０は、共通システム処理１０２への各アクセスを監視し、共通システム処理１０２への各アクセスのうちのアプリ１１１によるアクセスを検出する。このとき、測定部１２０は、アプリ１１１と対応付けた識別情報を用いることで、共通システム処理１０２への各アクセスのうちのアプリ１１１によるアクセスを検出することができる。そして、測定部１２０は、検出したアプリ１１１によるアクセスに応じた消費電力に基づいて、アプリ１１１のアプリ単位の消費電力を算出する。
【００２７】
このように、実施の形態１によれば、周辺ハードウェアではなく共通システム処理へのアクセスに対してアプリと対応付けた識別情報を付与することで、各アクセスがいずれのアプリによるものかを判別可能にしてもよい。これにより、アプリ単位の消費電力を精度よく測定することができる。
【００２８】
また、図１Ａ〜図１Ｄに示した構成を組み合わせてもよい。この場合に、たとえば、測定部１２０は、実行部１１０により実行される測定対象のアプリ１１１による所定単位の各処理のうちの周辺ハードウェア１０１および共通システム処理１０２への各アクセスを識別する識別情報を付与する。
【００２９】
また、測定部１２０は、周辺ハードウェア１０１および共通システム処理１０２への各アクセスを監視し、周辺ハードウェア１０１および共通システム処理１０２への各アクセスのうちのアプリ１１１によるアクセスを検出する。このとき、測定部１２０は、アプリ１１１と対応付けた識別情報を用いることで、周辺ハードウェア１０１および共通システム処理１０２への各アクセスのうちのアプリ１１１によるアクセスを検出することができる。そして、測定部１２０は、検出したアプリ１１１によるアクセスに応じた消費電力に基づいて、アプリ１１１のアプリ単位の消費電力を算出する。
【００３０】
（実施の形態２）
（実施の形態２にかかる端末）
図２は、実施の形態２にかかる端末の一例を示す図である。図２に示すように、実施の形態２にかかる端末２００は、ＣＰＵ２１０と、メモリ２２０と、周辺ハードウェア２３０と、を備える。端末２００は、たとえば携帯電話などの通信端末である。
【００３１】
図１Ａ〜図１Ｄに示した装置１００は、たとえば端末２００に適用することができる。この場合に、図１Ａ〜図１Ｄに示した実行部１１０は、たとえばＣＰＵ２１０によって実現することができる。また、図１Ａ〜図１Ｄに示した測定部１２０は、たとえばＣＰＵ２１０によって実現することができる。
【００３２】
図１Ａ，図１Ｂに示した周辺ハードウェア１０１は、たとえば周辺ハードウェア２３０によって実現することができる。また、図１Ｃ，図１Ｄに示した共通システム処理１０２は、たとえばメモリ２２０のソフトウェア２２１に含まれ、アプリ２２２〜２２４によって呼び出される共通システム処理によって実現することができる。
【００３３】
ＣＰＵ２１０は、端末２００の全体の制御を司る。また、ＣＰＵ２１０は、メモリ２２０にロードされた各アプリを実行する。図２に示す例では、ＣＰＵ２１０は、ＣＰＵコア２１１，２１２を備えるデュアルコアＣＰＵである。ただし、ＣＰＵ２１０におけるＣＰＵコアの数は、１つでもよいし、３つ以上であってもよい。
【００３４】
メモリ２２０は、ＣＰＵ２１０のワークエリアとして使用される。端末２００を動作させる各種のプログラムは、メモリ２２０にロードされてＣＰＵ２１０によって実行される。ソフトウェア２２１は、メモリ２２０にロードされるプログラムに対応するソフトウェアである。図２に示す例では、ソフトウェア２２１にはそれぞれ異なるアプリ２２２〜２２４が含まれる。
【００３５】
周辺ハードウェア２３０は、ＣＰＵ２１０によって制御される各種のハードウェアである。図２に示す例では、周辺ハードウェア２３０には、ＬＣＤ２３１と、カメラ２３２と、ＧＰＳ２３３と、センサ２３４と、ＬＥＤ２３５と、ＵＳＢ２３６と、無線通信Ｉ／Ｆ２３７と、不揮発メモリ２３８と、バッテリ２３９と、が含まれる。
【００３６】
ＬＣＤ２３１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶ディスプレイ）は、ユーザに対して各種の情報を表示するディスプレイである。アプリ２２２〜２２４によるＬＣＤ２３１へのアクセスには、たとえば、ＬＣＤ２３１の電源のオン／オフの制御や、ＬＣＤ２３１による情報表示の制御などが含まれる。また、ＬＣＤ２３１がタッチパネルである場合は、アプリ２２２〜２２４によるＬＣＤ２３１へのアクセスには、たとえば、ＬＣＤ２３１に対するユーザによるタッチの状態を示す情報の取得などが含まれる。
【００３７】
カメラ２３２は、レンズおよび撮像素子を含み撮影を行うデジタルカメラである。アプリ２２２〜２２４によるカメラ２３２へのアクセスには、たとえば、カメラ２３２による撮影の制御や、撮影によって得られた画像データの取得などが含まれる。
【００３８】
ＧＰＳ２３３（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ：全地球測位システム）は、ＧＰＳ衛星を利用して端末２００を特定するユニットである。アプリ２２２〜２２４によるＧＰＳ２３３へのアクセスには、たとえば、ＧＰＳ２３３に対する測定指示や、測定結果の取得などが含まれる。
【００３９】
センサ２３４は、輝度、温度、加速度などの各種の測定を行うセンサである。アプリ２２２〜２２４によるセンサ２３４へのアクセスには、たとえば、センサ２３４に対する測定指示や、測定結果の取得などが含まれる。
【００４０】
ＬＥＤ２３５（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ：発光ダイオード）は、発光によりユーザへの通知などを行う発光部である。アプリ２２２〜２２４によるＬＥＤ２３５へのアクセスには、たとえば、ＬＥＤ２３５に対する発光指示などが含まれる。
【００４１】
ＵＳＢ２３６（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）は、端末２００に対して各種の周辺機器を接続するためのシリアルバスである。アプリ２２２〜２２４によるＵＳＢ２３６へのアクセスには、たとえば、ＵＳＢ２３６の電源のオン／オフの制御や、ＵＳＢ２３６の通信の制御などが含まれる。
【００４２】
無線通信Ｉ／Ｆ２３７は、無線通信を行う通信インタフェースである。無線通信Ｉ／Ｆ２３７には、たとえば、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ：第３世代移動通信システム）やＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）による無線通信を行うインタフェースが含まれる。また、無線通信Ｉ／Ｆ２３７には、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ−Ｆｉｄｅｌｉｔｙ）やＢｌｕｅｔｏｏｔｈなどの無線通信を行うインタフェースが含まれていてもよい（Ｗｉ−ＦｉおよびＢｌｕｅｔｏｏｔｈは登録商標）。アプリ２２２〜２２４による無線通信Ｉ／Ｆ２３７へのアクセスには、たとえば、無線通信Ｉ／Ｆ２３７の電源のオン／オフの制御や、無線通信Ｉ／Ｆ２３７の通信の制御などが含まれる。
【００４３】
不揮発メモリ２３８は、メモリ２２０にロードされてＣＰＵ２１０によって実行されるプログラムや各種のデータが記憶されるメモリである。アプリ２２２〜２２４による不揮発メモリ２３８へのアクセスには、たとえば、不揮発メモリ２３８に対する電源のオン／オフの制御や、不揮発メモリ２３８における情報の入出力などが含まれる。
【００４４】
バッテリ２３９は、端末２００の各部に電源を供給するバッテリである。たとえば、バッテリ２３９は、ＣＰＵ２１０からの制御によって、バッテリ残量を測定し、測定結果をＣＰＵ２１０へ通知する機能を有する。アプリ２２２〜２２４によるバッテリ２３９へのアクセスには、たとえば、バッテリ２３９が供給する電源の電圧制御や、バッテリ２３９からのバッテリ残量の測定結果の取得などが含まれる。
【００４５】
（ソフト消費電力測定システムを適用した端末の構成）
図３Ａは、ソフト消費電力測定システムを適用した端末の構成の一例を示す図である。図３Ｂは、図３Ａに示した端末の構成における信号の流れの一例を示す図である。図３Ａ，図３Ｂにおいて、図２に示した部分と同様の部分については同一の符号を付して説明を省略する。
【００４６】
図３Ａ，図３Ｂに示すように、端末２００は、周辺ハードウェア２３０と、ソフトウェア実行部３１０と、セッション管理部３２０と、処理履歴管理部３３０と、消費電力算出部３４０と、アプリ消費電力出力部３５０と、を備える。
【００４７】
ソフトウェア実行部３１０、セッション管理部３２０、処理履歴管理部３３０、消費電力算出部３４０、アプリ消費電力出力部３５０は、たとえばメモリ２２０に読み込まれ、ＣＰＵ２１０により実行されるソフトウェア処理によって実現することができる。
【００４８】
図１Ａ〜図１Ｄに示した実行部１１０は、たとえばソフトウェア実行部３１０によって実現することができる。図１Ａ〜図１Ｄに示した測定部１２０は、たとえばセッション管理部３２０、処理履歴管理部３３０および消費電力算出部３４０によって実現することができる。図１Ｃ，図１Ｄに示した共通システム処理１０２は、たとえばソフトウェア実行部３１０のシステム共通処理部３１２によって実行される処理である。
【００４９】
＜ソフトウェア実行部＞
ソフトウェア実行部３１０は、複数のアプリのソフトウェア処理を実行する。ここでは、ソフトウェア実行部３１０によって実行される複数のアプリのそれぞれを消費電力の測定対象とする場合について説明する。ソフトウェア実行部３１０は、アプリ部３１１と、システム共通処理部３１２と、を備える。
【００５０】
アプリ部３１１は、複数のアプリ（たとえば図２に示したアプリ２２２〜２２４）を実行する。以下、アプリ部３１１が実行するアプリのシステム共通処理部３１２を利用する所定単位の処理（たとえばトランザクション処理）をセッションと称する。システム共通処理部３１２を利用する処理には、周辺ハードウェア２３０を利用する処理も含まれる。
【００５１】
システム共通処理部３１２は、アプリ部３１１によって実行される個々のアプリから共通で利用される、標準ライブラリなどのシステム共通処理を実行する。たとえば、システム共通処理には、汎用的な演算（たとえば算術演算、関係演算、論理演算など）を行う処理が含まれる。
【００５２】
また、システム共通処理には、周辺ハードウェア２３０へアクセスする処理が含まれる。また、システム共通処理には、周辺ハードウェア２３０にアクセスして周辺ハードウェア２３０の動作を開始させる処理や、周辺ハードウェア２３０にアクセスして周辺ハードウェア２３０の動作を停止させる処理が含まれる。
【００５３】
アプリ部３１１は、実行するアプリにおいて、システム共通処理部３１２を利用するセッションが発生するごとにユニークなセッションＩＤを生成し、生成したセッションＩＤを付与してシステム共通処理部３１２のシステム処理を呼び出す。そして、システム共通処理部３１２は、生成したＩＤを、セッションが発生したアプリを示すアプリＩＤとともにセッション管理部３２０へ通知する。
【００５４】
＜セッション管理部＞
セッション管理部３２０は、セッション管理テーブルを管理する。セッション管理テーブルは、ソフトウェア実行部３１０から通知されるセッションＩＤとアプリＩＤとの対応情報である（たとえば図５参照）。
【００５５】
＜処理履歴管理部＞
処理履歴管理部３３０は、ソフトウェア実行部３１０における各処理の履歴を管理する。処理履歴管理部３３０は、アプリ処理動作時間管理部３３１と、セッション処理動作時間管理部３３２と、ハードウェアアクセス管理部３３３と、ハードウェア動作時間管理部３３４と、を備える。
【００５６】
アプリ処理動作時間管理部３３１は、アプリ部３１１における各アプリの実行を監視し、アプリ部３１１のアプリごとの処理動作時間を示すアプリ処理動作時間格納テーブル（たとえば図６参照）を管理する。
【００５７】
セッション処理動作時間管理部３３２は、システム共通処理部３１２の各セッションを監視し、システム共通処理部３１２のセッションごとの処理動作時間を示すセッション処理動作時間格納テーブル（たとえば図７参照）を管理する。
【００５８】
ハードウェアアクセス管理部３３３は、システム共通処理部３１２の各セッションを監視し、システム共通処理部３１２による周辺ハードウェア２３０へのアクセス履歴を示すハードウェアアクセス情報管理テーブル（たとえば図８参照）を管理する。
【００５９】
ハードウェア動作時間管理部３３４は、システム共通処理部３１２のセッションを監視し、アクセスによって電力を消費し続ける周辺ハードウェア２３０の動作時間を示すハードウェア動作情報管理テーブル（たとえば図９参照）を管理する。
【００６０】
＜消費電力算出部＞
消費電力算出部３４０は、セッション管理部３２０および処理履歴管理部３３０によって管理される各テーブルに基づいて、ソフトウェア実行部３１０における個々のアプリの消費電力を算出する。消費電力算出部３４０は、ＣＰＵ消費電力算出部３４１と、ハードウェア消費電力算出部３４２と、アプリ消費電力算出部３４３と、を備える。
【００６１】
ＣＰＵ消費電力算出部３４１は、アプリ処理動作時間管理部３３１のアプリ処理動作時間格納テーブルに基づいて、アプリごとに生じるＣＰＵ消費電力（たとえば図１０参照）を算出する。ＣＰＵ消費電力は、たとえばアプリ部３１１（ＣＰＵ２１０）における消費電力である。たとえば、ＣＰＵ消費電力算出部３４１は、アプリごとに、アプリ処理動作時間格納テーブルが示すアプリ処理動作時間に所定の単位消費電力を乗じることでＣＰＵ消費電力を算出する。ＣＰＵ消費電力算出部３４１は、算出したアプリごとのＣＰＵ消費電力をアプリ消費電力算出部３４３へ出力する。
【００６２】
また、ＣＰＵ消費電力算出部３４１は、セッション処理動作時間管理部３３２のセッション処理動作時間格納テーブルに基づいて、セッションごとに生じるＣＰＵ消費電力（たとえば図１１参照）を算出する。たとえば、ＣＰＵ消費電力算出部３４１は、セッションごとに、セッション処理動作時間格納テーブルが示すセッション処理動作時間に所定の単位消費電力を乗じることでＣＰＵ消費電力を算出する。ＣＰＵ消費電力算出部３４１は、算出したセッションごとのＣＰＵ消費電力をアプリ消費電力算出部３４３へ出力する。
【００６３】
ハードウェア消費電力算出部３４２は、ハードウェアアクセス管理部３３３のハードウェアアクセス情報管理テーブルに基づいて、周辺ハードウェア２３０へのアクセスで生じる消費電力を算出する。また、ハードウェア消費電力算出部３４２は、ハードウェア動作時間管理部３３４のハードウェア動作情報管理テーブルに基づいて、周辺ハードウェア２３０へのアクセスによって動作を開始した周辺ハードウェア２３０の動作時間に応じた消費電力を算出する。ハードウェア消費電力算出部３４２は、算出した各消費電力をセッションごとにアプリ消費電力算出部３４３へ出力する。
【００６４】
アプリ消費電力算出部３４３は、アプリＩＤごとに、ＣＰＵ消費電力算出部３４１から出力された各消費電力と、ハードウェア消費電力算出部３４２から出力された各消費電力と、の合計値を算出する。このとき、アプリ消費電力算出部３４３は、セッション管理部３２０のセッション管理テーブルが示すセッションＩＤとアプリＩＤとの対応情報を用いることで、セッションＩＤごとの消費電力からアプリＩＤごとの消費電力を求めることができる。アプリ消費電力算出部３４３は、算出したアプリＩＤごとの消費電力の合計値を、アプリごとの消費電力としてアプリ消費電力出力部３５０へ出力する。
【００６５】
＜アプリ消費電力出力部＞
アプリ消費電力出力部３５０は、アプリ消費電力算出部３４３から出力されたアプリごとの消費電力を出力する。アプリ消費電力出力部３５０による消費電力の出力先は、ユーザであってもよいし、ソフトウェア実行部３１０において実行され、各アプリの消費電力に基づく処理を行うアプリであってもよい。
【００６６】
（測定対象の各消費電力）
図４は、測定対象の各消費電力の一例を示す図である。図４において、図２に示した部分と同様の部分については同一の符号を付して説明を省略する。図４に示すアプリ４１１，４１２は、メモリ２２０にロードされてＣＰＵ２１０によって実行される各アプリである。システム共通処理４２０は、アプリ４１１，４１２によって呼び出される共通の処理である。実施の形態２にかかる測定方法による測定対象には、たとえば図４に示すパターン４０１〜４０８がある。
【００６７】
パターン４０１は、アプリ４１１が単独で動作するパターンである。パターン４０２は、アプリ４１２が単独で動作するパターンである。パターン４０１，４０２においては、アプリの単独動作分のＣＰＵ消費電力が生じる。
【００６８】
パターン４０３〜４０５は、アプリ４１１が動作中にシステム共通処理４２０を呼び出すパターンである。パターン４０６，４０７は、アプリ４１２が動作中にシステム共通処理４２０を呼び出すパターンである。パターン４０３〜４０７においては、それぞれトランザクション単位で生成されたセッションＩＤを利用してアクセスが区別される。また、パターン４０３〜４０７においては、それぞれのセッションのシステム共通処理の動作時間分のＣＰＵ消費電力が追加で生じる。
【００６９】
また、パターン４０４〜４０７は、システム共通処理４２０の動作中に周辺ハードウェア２３０にアクセスするパターンを示しており、それぞれトランザクション単位で生成されたセッションＩＤを利用してアクセスが区別される。パターン４０４〜４０７においては、それぞれのセッションのハードウェアアクセスに応じたハードウェア消費電力が追加で生じる。
【００７０】
また、パターン４０５は、周辺ハードウェア２３０にアクセスした際に、パターン４０８に示すハードウェアトランザクション処理を開始している場合を示している。また、パターン４０７は、周辺ハードウェア２３０にアクセスした際に、パターン４０８に示すハードウェアトランザクション処理を終了している場合をそれぞれ示している。パターン４０５，４０７においては、ハードウェアトランザクション処理動作分のハードウェア消費電力が追加で生じる。実施の形態２においては、パターン４０８についての消費電力を、パターン４０８の処理を開始したパターン４０５の消費電力として扱う。
【００７１】
また、実施の形態２にかかる測定方法による測定対象には、パターン４０１〜４０８に限らず、たとえば、アプリ４１１があるセッションで開始させた周辺ハードウェア２３０の動作を、アプリ４１１の別のセッションで停止させるパターンが含まれていてもよい。このパターンの周辺ハードウェア２３０の動作時間に応じた消費電力については、アプリ４１１の消費電力として扱う。
【００７２】
（セッション管理テーブル）
図５は、セッション管理テーブルの一例を示す図である。セッション管理部３２０には、たとえば図５に示すセッション管理テーブル５００が記憶される。セッション管理テーブル５００は、アプリＩＤとセッションＩＤとの対応情報が格納されるテーブルである。セッション管理部３２０は、アプリ部３１１から通知されるアプリＩＤとセッションＩＤに基づいてセッション管理テーブル５００を管理する。
【００７３】
上述したように、セッションはアプリの所定単位の各処理であるため、１つのアプリに対して複数発生する。このため、図５に示すように、セッション管理テーブル５００において、同一のアプリＩＤ（「１０」）に複数のセッションＩＤ（「１０００１０」，「１０００１２」）が含まれる場合がある。
【００７４】
（アプリ処理動作時間格納テーブル）
図６は、アプリ処理動作時間格納テーブルの一例を示す図である。アプリ処理動作時間管理部３３１には、たとえば図６に示すアプリ処理動作時間格納テーブル６００が記憶される。アプリ処理動作時間格納テーブル６００は、アプリＩＤごとにアプリ処理動作時間が格納されるテーブルである。アプリ処理動作時間管理部３３１は、アプリ部３１１における各アプリの実行を監視し、アプリ部３１１のアプリごとの処理動作時間を測定することによりアプリ処理動作時間格納テーブル６００を管理する。
【００７５】
（セッション処理動作時間格納テーブル）
図７は、セッション処理動作時間格納テーブルの一例を示す図である。セッション処理動作時間管理部３３２には、たとえば図７に示すセッション処理動作時間格納テーブル７００が記憶される。セッション処理動作時間格納テーブル７００は、セッションＩＤごとに、セッション処理動作時間が格納されるテーブルである。セッション処理動作時間管理部３３２は、システム共通処理部３１２の各セッションを監視し、システム共通処理部３１２のセッションごとの処理動作時間を測定することによりセッション処理動作時間格納テーブル７００を管理する。
【００７６】
（セッションのハードウェアアクセス情報管理テーブル）
図８は、セッションのハードウェアアクセス情報管理テーブルの一例を示す図である。ハードウェアアクセス管理部３３３には、たとえば図８に示すハードウェアアクセス情報管理テーブル８００が記憶される。ハードウェアアクセス情報管理テーブル８００は、セッションＩＤごとに、ハード処理ＩＤと、制御パラメータ（係数）と、を含むテーブルである。ハード処理ＩＤは、セッションＩＤが示すセッションによるアクセス処理の種類を示すＩＤである。制御パラメータは、ハード処理ＩＤが示すアクセス処理に応じて設定された係数である。
【００７７】
ハードウェアアクセス管理部３３３は、システム共通処理部３１２の各セッションを監視し、システム共通処理部３１２による周辺ハードウェア２３０へのアクセス履歴を生成することによりハードウェアアクセス情報管理テーブル８００を管理する。
【００７８】
（ハードウェア動作情報管理テーブル）
図９は、ハードウェア動作情報管理テーブルの一例を示す図である。ハードウェア動作時間管理部３３４には、たとえば図９に示すハードウェア動作情報管理テーブル９００が記憶される。ハードウェア動作情報管理テーブル９００は、セッションＩＤごとに、動作ハードＩＤと、制御パラメータ（係数）と、開始時刻と、動作時間と、を含むハードウェア動作情報が格納されるテーブルである。
【００７９】
動作ハードＩＤは、セッションＩＤが示すセッションによるアクセスで動作を開始した周辺ハードウェアを示す識別情報である。制御パラメータは、動作ハードＩＤが示す周辺ハードウェアに応じて設定された係数である。開始時刻は、セッションＩＤが示すセッションによるアクセスで動作を開始した周辺ハードウェアの動作の開始時刻であって、たとえばセッションＩＤが示すセッションの発生時刻である。
【００８０】
動作時間は、セッションＩＤが示すセッションによるアクセスで動作を開始した周辺ハードウェアの動作時間であって、たとえば、開始時刻と、別のセッションによってこの周辺ハードウェアの動作が停止した時刻（または現在時刻）との差分である。セッションＩＤが示すセッションによるアクセスで動作を開始した周辺ハードウェアが停止していない場合は、動作時間には「動作中」が格納される。
【００８１】
ハードウェア動作時間管理部３３４は、システム共通処理部３１２のセッションを監視し、アクセスによって電力を消費し続ける周辺ハードウェア２３０の動作時間を測定することでハードウェア動作情報管理テーブル９００を管理する。
【００８２】
ハードウェア動作情報管理テーブル９００は、動作を開始した周辺ハードウェア１０１とセッションＩＤとを対応付ける対応情報を含む。
【００８３】
（アプリＣＰＵ消費電力格納テーブル）
図１０は、アプリＣＰＵ消費電力格納テーブルの一例を示す図である。ＣＰＵ消費電力算出部３４１は、アプリＣＰＵ消費電力の算出結果をたとえば図１０に示すアプリＣＰＵ消費電力格納テーブル１０００に格納する。アプリＣＰＵ消費電力格納テーブル１０００は、アプリＩＤごとのＣＰＵ消費電力［μＷｈ］を示す。
【００８４】
（セッションＣＰＵ消費電力格納テーブル）
図１１は、セッションＣＰＵ消費電力格納テーブルの一例を示す図である。ＣＰＵ消費電力算出部３４１は、セッションＣＰＵ消費電力の算出結果をたとえば図１１に示すセッションＣＰＵ消費電力格納テーブル１１００に格納する。セッションＣＰＵ消費電力格納テーブル１１００は、セッションＩＤごとのＣＰＵ消費電力［μＷｈ］を示す。
【００８５】
（セッションのハードウェア消費電力格納テーブル）
図１２は、セッションのハードウェア消費電力格納テーブルの一例を示す図である。ハードウェア消費電力算出部３４２は、ハードウェア消費電力の算出結果をたとえば図１２に示すハードウェア消費電力格納テーブル１２００に格納する。ハードウェア消費電力格納テーブル１２００は、セッションＩＤごとのハードウェア消費電力［μＷｈ］を示す。
【００８６】
（ハードウェア制御消費電力基準値格納テーブル）
図１３は、ハードウェア制御消費電力基準値格納テーブルの一例を示す図である。端末２００のメモリ（たとえばメモリ２２０や不揮発メモリ２３８）には、たとえば図１３に示すハードウェア制御消費電力基準値格納テーブル１３００が予め記憶されている。ハードウェア制御消費電力基準値格納テーブル１３００は、ハード処理ＩＤごとに、ハード処理ＩＤが示すアクセス処理を実行した場合の一回あたりの消費電力（消費電力基準値）［μＷ］を示す。
【００８７】
ハードウェア消費電力算出部３４２は、ハードウェアアクセス情報管理テーブル８００（図８参照）が示すハードウェアアクセス情報とハードウェア制御消費電力基準値格納テーブル１３００とを用いて、ハード制御分のハードウェア消費電力を算出する。ハード制御分のハードウェア消費電力の算出については後述する（たとえば図１７参照）。
【００８８】
（動作ハードウェア消費電力基準値格納テーブル）
図１４は、動作ハードウェア消費電力基準値格納テーブルの一例を示す図である。端末２００のメモリ（たとえばメモリ２２０や不揮発メモリ２３８）たとえば図１４に示す動作ハードウェア消費電力基準値格納テーブル１４００が予め記憶されている。動作ハードウェア消費電力基準値格納テーブル１４００は、動作ハードＩＤごとに、動作ハードＩＤが示す周辺ハードウェアが動作した場合の単位時間あたりの消費電力（消費電力基準値）［μＷ／ｓ］を示す。
【００８９】
ハードウェア消費電力算出部３４２は、ハードウェア動作情報管理テーブル９００（図９参照）が示すハードウェア動作情報と動作ハードウェア消費電力基準値格納テーブル１４００とを用いて、動作ハード分のハードウェア消費電力を算出する。動作ハード分のハードウェア消費電力の算出については後述する（たとえば図１７参照）。
【００９０】
（アプリ動作開始時の処理）
図１５は、アプリ動作開始時の処理の一例を示すフローチャートである。端末２００は、消費電力の測定モード中（たとえば図１７参照）にアプリの動作を開始する場合（アプリ動作開始時）に、たとえば図１５に示す各ステップを実行する。図１５に示す各ステップは、たとえばアプリ部３１１、セッション管理部３２０およびアプリ処理動作時間管理部３３１によって実行される。まず、端末２００は、動作を開始する対象アプリのアプリＩＤを生成する（ステップＳ１５０１）。
【００９１】
つぎに、端末２００は、対象アプリの処理を所定単位だけ実行する（ステップＳ１５０２）。この所定単位は、一例としては、トランザクション単位や、アプリからアプリ部３１１に制御が戻るまでの処理単位である。なお、ステップＳ１５０２の処理においてシステム共通処理の呼出があった場合は、システム共通処理はステップＳ１５０２においては実行されず、後述のステップＳ１５０７〜Ｓ１５０９において実行される。
【００９２】
つぎに、端末２００は、ステップＳ１５０２の処理にかかった時間によって、対象アプリのアプリ処理動作時間を加算する（ステップＳ１５０３）。たとえば、端末２００は、アプリ処理動作時間格納テーブル６００（図６参照）における対象アプリに対応するアプリ処理動作時間に、ステップＳ１５０２の処理にかかった時間を加算する。
【００９３】
つぎに、端末２００は、割り込み処理などで対象アプリの処理を中断するか否かを判断する（ステップＳ１５０４）。割り込み処理は、たとえばオペレーティングシステムのＣＰＵ制御などによって発生する。
【００９４】
ステップＳ１５０４において、対象アプリの処理を中断すると判断した場合（ステップＳ１５０４：Ｙｅｓ）は、端末２００は、ステップＳ１５０５へ移行する。すなわち、端末２００は、対象アプリの処理を再開するか否かを判断し（ステップＳ１５０５）、対象アプリの処理を再開すると判断するまで待つ（ステップＳ１５０５：Ｎｏのループ）。これにより、対象アプリの処理が中断した状態となる。対象アプリの処理を再開すると判断すると（ステップＳ１５０５：Ｙｅｓ）、端末２００は、ステップＳ１５０２へ戻る。
【００９５】
ステップＳ１５０４において、対象アプリの処理を中断しないと判断した場合（ステップＳ１５０４：Ｎｏ）は、端末２００は、ステップＳ１５０２の処理においてシステム共通処理の呼出があったか否かを判断する（ステップＳ１５０６）。システム共通処理の呼出がなかった場合（ステップＳ１５０６：Ｎｏ）は、端末２００は、ステップＳ１５１０へ移行する。
【００９６】
ステップＳ１５０６において、システム共通処理の呼出があった場合（ステップＳ１５０６：Ｙｅｓ）は、端末２００は、呼出があったシステム共通処理の呼出（アクセス）に対してセッションＩＤを生成する（ステップＳ１５０７）。これによりセッションが確立される。つぎに、端末２００は、ステップＳ１５０７によって生成したセッションＩＤを、ステップＳ１５０１によって生成したアプリＩＤと対応付けてセッション管理テーブル５００（図５参照）に登録する（ステップＳ１５０８）。
【００９７】
つぎに、端末２００は、ステップＳ１５０２において呼出があったシステム共通処理を、システムＩＤを付与して実行する（ステップＳ１５０９）。ステップＳ１５０９において、端末２００は、ステップＳ１５０７によって生成したセッションＩＤを付与して（たとえば呼出パラメータに含めて）システム共通処理を呼び出すことでシステム共通処理を実行する。システム共通処理の実行については後述する（たとえば図１６参照）。
【００９８】
つぎに、端末２００は、対象アプリの処理を継続するか否かを判断する（ステップＳ１５１０）。ステップＳ１５１０の判断は、たとえば対象アプリの処理がすべて終了したか否かや、対象アプリの処理の終了がユーザやオペレーティングシステムなどから指示されたか否かによって判断することができる。対象アプリの処理を継続すると判断した場合（ステップＳ１５１０：Ｙｅｓ）は、端末２００は、ステップＳ１５０２へ戻る。
【００９９】
ステップＳ１５１０において、対象アプリの処理を継続しないと判断した場合（ステップＳ１５１０：Ｎｏ）は、端末２００は、一連の処理を終了する。
【０１００】
（システム共通処理の実行）
図１６は、システム共通処理の実行の一例を示すフローチャートである。端末２００は、図１５に示したステップＳ１５０９において、システム共通処理として、たとえば図１６に示す各ステップを実行する。
【０１０１】
図１６に示す各ステップは、たとえばシステム共通処理部３１２、セッション処理動作時間管理部３３２、ハードウェアアクセス管理部３３３およびハードウェア動作時間管理部３３４によって実行される。また、図１６に示す各ステップにおいては、呼出時に付与されたセッションＩＤを用いて対象セッションを維持することができる。
【０１０２】
まず、端末２００は、対象セッションのシステム共通処理を所定単位だけ実行する（ステップＳ１６０１）。この所定単位は、一例としては、トランザクション単位や、アプリからシステム共通処理部３１２に制御が戻るまでの処理単位である。
【０１０３】
つぎに、端末２００は、ステップＳ１６０１の処理にかかった時間によって、対象セッションのセッション処理動作時間を加算する（ステップＳ１６０２）。たとえば、端末２００は、セッション処理動作時間格納テーブル７００（図７参照）における対象セッションＩＤに対応するセッション処理動作時間に、ステップＳ１６０１の処理にかかった時間を加算する。
【０１０４】
つぎに、端末２００は、対象セッションの処理を割り込み処理などで中断するか否かを判断する（ステップＳ１６０３）。対象セッションの処理を中断すると判断した場合（ステップＳ１６０３：Ｙｅｓ）は、端末２００は、対象セッションの処理を再開するか否かを判断し（ステップＳ１６０４）、対象セッションの処理を再開すると判断するまで待つ（ステップＳ１６０４：Ｎｏのループ）。これにより、対象セッションの処理が中断した状態となる。対象セッションの処理を再開すると判断すると（ステップＳ１６０４：Ｙｅｓ）、端末２００は、ステップＳ１６０１へ戻る。
【０１０５】
ステップＳ１６０３において、対象セッションの処理を中断しないと判断した場合（ステップＳ１６０３：Ｎｏ）は、端末２００は、ステップＳ１６０１の処理において周辺ハードウェアの制御があったか否かを判断する（ステップＳ１６０５）。周辺ハードウェアの制御がなかった場合（ステップＳ１６０５：Ｎｏ）は、端末２００は、ステップＳ１６１１へ移行する。
【０１０６】
ステップＳ１６０５において、周辺ハードウェアの制御があった場合（ステップＳ１６０５：Ｙｅｓ）は、端末２００は、ハードウェアアクセス情報管理テーブル８００（図８参照）にハードウェアアクセス情報を保存する（ステップＳ１６０６）。ハードウェアアクセス情報には、たとえば、対象セッションのセッションＩＤと、セッションＩＤおよびハードウェアアクセス制御によって決まるハード処理ＩＤと、ハードウェアアクセス制御の種類によって決まる制御パラメータと、が含まれる。
【０１０７】
つぎに、端末２００は、ステップＳ１６０１の処理において、周辺ハードウェアの動作の開始または終了の制御があったか否かを判断する（ステップＳ１６０７）。周辺ハードウェアの動作の開始の制御は、たとえば、周辺ハードウェアの起動（電源供給開始）などであり、周辺ハードウェアの継続動作が開始されるものである。周辺ハードウェアの動作の終了の制御は、たとえば、動作中の周辺ハードウェアへの電力供給の停止などであり、継続していた周辺ハードウェアの動作を停止させるものである。
【０１０８】
ステップＳ１６０７において、周辺ハードウェアの動作の開始の制御も終了の制御もなかった場合（ステップＳ１６０７：Ｎｏ）は、端末２００は、ステップＳ１６１１へ移行する。周辺ハードウェアの動作の開始または終了の制御があった場合（ステップＳ１６０７：Ｙｅｓ）は、端末２００は、ステップＳ１６０１の処理にあったのが開始の制御であったか否かを判断する（ステップＳ１６０８）。
【０１０９】
ステップＳ１６０８において、開始の制御であった場合（ステップＳ１６０８：Ｙｅｓ）は、端末２００は、ハードウェア動作情報をハードウェア動作情報管理テーブル９００（図９参照）に追加し（ステップＳ１６０９）、ステップＳ１６１１へ移行する。ハードウェア動作情報には、対象セッションのセッションＩＤと、動作ハードＩＤと、制御パラメータと、開始時刻と、が含まれる。動作ハードＩＤは、セッションＩＤおよびハードウェア動作によって決まるＩＤである。制御パラメータは、ハードウェア制御時の設定パラメータによって決まる係数である。開始時刻は、現在時刻（たとえばステップＳ１６０９における時刻）である。
【０１１０】
ステップＳ１６０８において、開始の制御ではなく終了の制御である場合（ステップＳ１６０８：Ｎｏ）は、端末２００は、ハードウェア動作情報管理テーブル９００（図９参照）における対象ハードの動作時間を更新する（ステップＳ１６１０）。たとえば、端末２００は、ハードウェア動作情報管理テーブル９００のうちの対象セッションに対応する開始時刻と現在時刻から算出した動作時間によって、ハードウェア動作情報管理テーブル９００のうちの対象セッションに対応する動作時間を更新する。
【０１１１】
つぎに、端末２００は、対象セッションの処理を継続するか否かを判断する（ステップＳ１６１１）。ステップＳ１６１１の判断は、たとえば対象セッションの処理がすべて終了したか否かや、対象セッションの呼出元のアプリの処理の終了がユーザやオペレーティングシステムなどから指示されたか否かによって判断することができる。
【０１１２】
ステップＳ１６１１において、対象セッションの処理を継続すると判断した場合（ステップＳ１６１１：Ｙｅｓ）は、端末２００は、ステップＳ１６０１へ戻る。対象セッションの処理を継続しないと判断した場合（ステップＳ１６１１：Ｎｏ）は、端末２００は、一連の処理を終了する。
【０１１３】
（アプリの消費電力の算出処理）
図１７は、アプリの消費電力の算出処理の一例を示すフローチャートである。端末２００は、アプリの消費電力の算出処理として、たとえば図１７に示す各ステップを実行する。図１７に示す各ステップは、たとえば消費電力算出部３４０およびアプリ消費電力出力部３５０によって実行される。まず、端末２００は、消費電力の測定モードへ移行する（ステップＳ１７０１）。これにより、アプリ部３１１におけるアプリの動作開始時に図１５に示した各ステップが実行されるようになる。
【０１１４】
つぎに、端末２００は、ステップＳ１７０１によって移行した測定モードを終了するか否かを判断し（ステップＳ１７０２）、測定モードを終了すると判断するまで待つ（ステップＳ１７０２：Ｎｏのループ）。ステップＳ１７０２の判断は、たとえばステップＳ１７０１から所定時間が経過したか否かによって判断することができる。測定モードを終了すると判断した場合（ステップＳ１７０２：Ｙｅｓ）は、端末２００は、測定モードを解除する（ステップＳ１７０３）。
【０１１５】
つぎに、端末２００は、ハードウェア動作情報管理テーブル９００（図９参照）を参照し、動作中の周辺ハードウェアの動作時間を更新する（ステップＳ１７０４）。たとえば、ハードウェア動作情報管理テーブル９００は、ハードウェア動作情報管理テーブル９００のうちの動作時間が「動作中」となっているセッションＩＤについて、開始時刻から現在時刻までの経過時間を動作時間として記録する。
【０１１６】
つぎに、端末２００は、アプリ処理動作時間に応じたＣＰＵ消費電力を算出する（ステップＳ１７０５）。ステップＳ１７０５において、端末２００は、たとえば下記（１）式によってアプリごとのＣＰＵ消費電力を算出する。
【０１１７】
アプリのＣＰＵ消費電力＝アプリ処理動作時間×単位消費電力  …（１）
【０１１８】
上記（１）式において、アプリ処理動作時間は、アプリ処理動作時間格納テーブル６００（図６参照）における対象アプリのアプリ処理動作時間である。単位消費電力は、ＣＰＵ２１０の処理時間あたりの消費電力であって、たとえば予め端末２００のメモリに記憶されている。端末２００は、算出したアプリごとのＣＰＵ消費電力をアプリＣＰＵ消費電力格納テーブル１０００（図１０参照）に格納する。
【０１１９】
また、ステップＳ１７０５において、端末２００は、たとえば下記（２）式によってセッションごとのＣＰＵ消費電力を算出する。
【０１２０】
セッションのＣＰＵ消費電力＝セッション処理動作時間×単位消費電力  …（２）
【０１２１】
上記（２）式において、セッション処理動作時間は、セッション処理動作時間格納テーブル７００（図７参照）における対象セッションのセッション処理動作時間である。単位消費電力は、たとえば上記（１）式の単位消費電力と同じである。端末２００は、算出したセッションごとのＣＰＵ消費電力をセッションＣＰＵ消費電力格納テーブル１１００（図１１参照）に格納する。
【０１２２】
つぎに、端末２００は、ハードウェア消費電力を算出する（ステップＳ１７０６）。ステップＳ１７０６において、端末２００は、たとえば下記（３）式によってハード制御分のハードウェア消費電力を算出することができる。
【０１２３】
ハードウェア消費電力（ハード制御分）＝
ハードウェア制御消費電力基準値×制御パラメータ  …（３）
【０１２４】
上記（３）式において、ハードウェア制御消費電力基準値は、ハードウェア制御消費電力基準値格納テーブル１３００（図１３参照）における、対象のハード処理ＩＤに対応する消費電力基準値である。対象のハード処理ＩＤは、ハードウェアアクセス情報管理テーブル８００（図８参照）における、対象セッションに対応するハード処理ＩＤである。
【０１２５】
上記（３）式の制御パラメータは、ハードウェアアクセス情報管理テーブル８００（図８参照）における、対象セッションに対応する制御パラメータである。このように、ハード処理ごとに設定された制御パラメータを用いることで、ハードウェア制御時の設定パラメータによりハードウェアアクセスおよびハードウェア動作で生じる消費電力が異なっていても、これらの消費電力を精度よく算出することができる。
【０１２６】
また、ステップＳ１７０６において、端末２００は、たとえば下記（４）式によって動作ハード分のハードウェア消費電力を算出することができる。
【０１２７】
ハードウェア消費電力（動作ハード分）＝
動作ハードウェア消費電力基準値×制御パラメータ×動作時間  …（４）
【０１２８】
上記（４）式において、動作ハードウェア消費電力基準値は、動作ハードウェア消費電力基準値格納テーブル１４００（図１４参照）における、対象の動作ハードＩＤに対応する消費電力基準値である。対象の動作ハードＩＤは、ハードウェア動作情報管理テーブル９００（図９参照）における、対象セッションに対応する動作ハードＩＤである。
【０１２９】
上記（４）式の制御パラメータは、ハードウェア動作情報管理テーブル９００（図９参照）における、対象セッションに対応する制御パラメータである。このように、動作ハードＩＤごとに設定された制御パラメータを用いることで、ハードウェア制御時の設定パラメータによりハードウェアアクセスおよびハードウェア動作で生じる消費電力が異なっていても、これらの消費電力を精度よく算出することができる。
【０１３０】
端末２００は、ステップＳ１７０６による各算出結果をハードウェア消費電力格納テーブル１２００（図１２参照）に格納する。
【０１３１】
つぎに、端末２００は、後述のステップＳ１７１２によって、消費電力の測定対象のすべてのアプリについて消費電力を出力済みか否かを判断する（ステップＳ１７０７）。すべてのアプリについて消費電力を出力済みでない場合（ステップＳ１７０７：Ｎｏ）は、端末２００は、測定対象のアプリのうちの消費電力を出力済みでないアプリについて、ステップＳ１７０８〜Ｓ１７１２の各ステップを実行する。
【０１３２】
まず、端末２００は、アプリＣＰＵ消費電力格納テーブル１０００（図１０参照）から、対象アプリのＣＰＵ消費電力を取得する（ステップＳ１７０８）。つぎに、端末２００は、セッション管理テーブル５００（図５参照）から、対象アプリが生成したセッションの一覧（セッションＩＤの一覧）を取得する（ステップＳ１７０９）。
【０１３３】
つぎに、端末２００は、ステップＳ１７０９によって取得した一覧の各セッションのＣＰＵ消費電力を、セッションＣＰＵ消費電力格納テーブル１１００（図１１参照）から取得する（ステップＳ１７１０）。つぎに、端末２００は、ステップＳ１７０９によって取得した一覧の各セッションのハードウェア消費電力をハードウェア消費電力格納テーブル１２００（図１２参照）から取得する（ステップＳ１７１１）。
【０１３４】
つぎに、端末２００は、ステップＳ１７０８，Ｓ１７１０，Ｓ１７１１によって取得した各消費電力の合計を対象アプリの消費電力として出力し（ステップＳ１７１２）、対象アプリについての処理を終了し、ステップＳ１７０７へ戻る。
【０１３５】
ステップＳ１７０７において、すべてのアプリについて消費電力を出力済みである場合（ステップＳ１７０７：Ｙｅｓ）は、端末２００は、一連の処理を終了する。
【０１３６】
このように、実施の形態２によれば、システム共通処理や周辺ハードウェアへのアクセスに対してアプリと対応付けたセッションＩＤを生成することで、各アクセスがいずれのアプリによるものかを判別可能にすることができる。これにより、アプリ単位の消費電力を精度よく測定することができる。
【０１３７】
図１Ａ〜図１Ｄに示した装置１００を端末２００に適用する場合について説明したが、実行部１１０は端末２００に限らず、複数のアプリを実行する各種のコンピュータに適用することができる。
【０１３８】
以上説明したように、装置によれば、アプリケーションソフトウェア単位の消費電力を精度よく測定することができる。
【０１３９】
たとえば、従来、端末の動作中の消費電力を求める場合は、対象となるアプリ単位のＣＰＵ占有率に基づくＣＰＵ動作時間を消費電力としていた。ここで、他のアプリと共有するシステム共通処理については、どのアプリにも属さないシステムの動作時間として１つにまとめて求められている。
【０１４０】
また、ＣＰＵ以外の周辺ハードウェアへのアクセスで生じる消費電力は測定結果に含められない場合がある。また、このような消費電力を測定結果に含めるとしても、たとえば、周辺ハードウェアへアクセスを行うシステム共通処理へのアクセス回数やデータ量などのパラメータに基づいて平均化したアクセス量が消費電力として算出されている。一方、周辺ハードウェアへのアクセスで実際に生じる消費電力は、周辺ハードウェア仕様に基づいて計算するか、電力測定機器を用いて実測することにより求められている。
【０１４１】
近年、端末の多機能化が進むにつれ、他のアプリと共有するシステム共通処理を利用する割合が高くなっている。このため、このシステム共通処理をシステムの動作として１つにまとめてＣＰＵ占有率に含めてしまうと、システム以外の個々のアプリのＣＰＵ占有率は、全体的に低くなり、かつ有効な情報ではなくなってきている。また、ＣＰＵ以外の周辺ハードウェアへのアクセスで生じる消費電力の割合が多く、ＣＰＵ占有率のみでは実際に消費する電力より低く算出されてしまう。
【０１４２】
また、システム共通処理の中では、システムの状態に合わせて省電力制御を行いながら消費電力が最適となるよう周辺ハードウェアへアクセスが行われる。このため、周辺ハードウェアへのアクセスで生じる消費電力を測定結果に含めるとしても、アクセス回数やデータ量などのパラメータ情報に基づいて算出するだけでは、実際の消費電力からの誤差が出る場合がある。
【０１４３】
また、システム共通処理へのアクセスの中で完結しない電源オンや電圧設定変更といったアクセス後に消費し続ける周辺ハードウェアの電力を算出することができなかった。また、周辺ハードウェアへのアクセスで実際に生じる消費電力は、周辺ハードウェア側の仕様または電力測定機器で求めることしかできなかった。このため、どのアプリが周辺ハードウェアへアクセスして電力を消費しているかソフトウェア処理と関連付けて求めることができなかった。
【０１４４】
これに対して、上述した各実施の形態によれば、これらの周辺ハードウェアやシステム共通処理についても、アプリ単位の消費電力を精度よく測定することができる。これにより、たとえば、端末で複数のアプリが動作中の状態において、個々のアプリがＣＰＵやＣＰＵ以外の周辺ハードウェアをアクセスすることで消費する電力を詳しく得て分析することができる。また、電力を多く消費しているアプリの特定や個々のアプリがバッテリをどれだけ消費しているかといった情報を求めることも可能となる。
【０１４５】
なお、本実施の形態で説明した測定方法は、たとえば、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布されてもよい。
【０１４６】
また、上述したアプリには、周辺ハードウェアへアクセスし電力を消費するきっかけを与える処理であれば、アプリケーションとして形成されていない、特定の割り込みハンドラなどが含まれていてもよい。
【０１４７】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【０１４８】
（付記１）同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
【０１４９】
（付記２）前記測定部は、
検出した前記アクセスに応じた前記実行部における消費電力を、前記周辺ハードウェアへのアクセスによる前記実行部における所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記１に記載の装置。
【０１５０】
（付記３）前記測定部は、
検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を、前記周辺ハードウェアへのアクセスによる前記周辺ハードウェアにおける所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記１または２に記載の装置。
【０１５１】
（付記４）前記測定部は、
検出した前記アクセスによって動作を開始した前記周辺ハードウェアが、検出した前記アクセスとは異なる処理によって停止するまでの動作時間を検出し、
検出した前記動作時間と、前記周辺ハードウェアの動作時間あたりの消費電力を示す前記消費電力情報と、に基づいて、検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記３に記載の装置。
【０１５２】
（付記５）前記測定部は、
検出した前記アクセスによって動作を開始した前記周辺ハードウェアと前記識別情報とを対応付ける対応情報を生成し、
生成した前記対応情報に基づいて前記動作時間を検出することを特徴とする付記４に記載の装置。
【０１５３】
（付記６）前記複数のアプリケーションソフトウェアは同一の共通システム処理へアクセスし、
前記測定部は、
前記測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアおよび前記共通システム処理への各アクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記周辺ハードウェアおよび前記共通システム処理への各アクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出することを特徴とする付記１〜５のいずれか一つに記載の装置。
【０１５４】
（付記７）前記測定部は、前記測定対象のアプリケーションソフトウェアによる処理時間に応じた消費電力と、検出した前記アクセスに応じた消費電力と、の合計に基づいて前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出することを特徴とする付記１〜６のいずれか一つに記載の装置。
【０１５５】
（付記８）前記所定単位は、トランザクション単位であることを特徴とする付記１〜７のいずれか一つに記載の装置。
【０１５６】
（付記９）同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
【符号の説明】
【０１５７】
１００  装置
１０１，２３０  周辺ハードウェア
１０２  共通システム処理
１１０  実行部
１１１，１１２，２２２〜２２４，４１１，４１２  アプリ
１２０  測定部
２００  端末
２１０  ＣＰＵ
２１１，２１２  ＣＰＵコア
２２０  メモリ
２２１  ソフトウェア
２３１  ＬＣＤ
２３２  カメラ
２３３  ＧＰＳ
２３４  センサ
２３５  ＬＥＤ
２３６  ＵＳＢ
２３７  無線通信Ｉ／Ｆ
２３８  不揮発メモリ
２３９  バッテリ
３１０  ソフトウェア実行部
３１１  アプリ部
３１２  システム共通処理部
３２０  セッション管理部
３３０  処理履歴管理部
３３１  アプリ処理動作時間管理部
３３２  セッション処理動作時間管理部
３３３  ハードウェアアクセス管理部
３３４  ハードウェア動作時間管理部
３４０  消費電力算出部
３４１  ＣＰＵ消費電力算出部
３４２  ハードウェア消費電力算出部
３４３  アプリ消費電力算出部
３５０  アプリ消費電力出力部
４０１〜４０８  パターン
４２０  システム共通処理
５００  セッション管理テーブル
６００  アプリ処理動作時間格納テーブル
７００  セッション処理動作時間格納テーブル
８００  ハードウェアアクセス情報管理テーブル
９００  ハードウェア動作情報管理テーブル
１０００  アプリＣＰＵ消費電力格納テーブル
１１００  セッションＣＰＵ消費電力格納テーブル
１２００  ハードウェア消費電力格納テーブル
１３００  ハードウェア制御消費電力基準値格納テーブル
１４００  動作ハードウェア消費電力基準値格納テーブル
【図１Ａ】
2015207128.tif 000003
【図１Ｂ】
2015207128.tif 000004
【図１Ｃ】
2015207128.tif 000005
【図１Ｄ】
2015207128.tif 000006
【図２】
2015207128.tif 000007
【図３Ａ】
2015207128.tif 000008
【図３Ｂ】
2015207128.tif 000009
【図４】
2015207128.tif 000010
【図５】
2015207128.tif 000011
【図６】
2015207128.tif 000012
【図７】
2015207128.tif 000013
【図８】
2015207128.tif 000014
【図９】
2015207128.tif 000015
【図１０】
2015207128.tif 000016
【図１１】
2015207128.tif 000017
【図１２】
2015207128.tif 000018
【図１３】
2015207128.tif 000019
【図１４】
2015207128.tif 000020
【図１５】
2015207128.tif 000021
【図１６】
2015207128.tif 000022
【図１７】
2015207128.tif 000023