1

のエネルギー消費量を測定したい

  • 自分のアプリケーション (変更可能)
  • サードパーティのアプリケーション (私は変更できません)

の上

  • Windows CE 5.0
  • ウィンドウズ モバイル 5/6

これにはある種のAPIがありますか?

そうでない場合、エネルギー消費量の推定に使用できる他の値を測定できますか?

のような正確な値は必要ありません20 mAh(それはいいことですが) 次のような相対値で十分です: 「100% から 0% の充電状態で開始し、完全に充電されたバッテリーの約 20% がこのアプリケーションによって使用されました」

一方、測定が単一のアプリケーションに固有のものであることは非常に重要です。つまり、「これらの 3 つのアプリケーションが一緒に消費する」など、アプリケーションのグループに対して集計された測定は必要ありません。

4

4 に答える 4

3

消費電力に関する情報を取得するための API がありますが、この API によって返される情報の正確性は OEM に依存します (一部の OEM は情報をまったく提供していません)。この API のサンプル コードの詳細については、http://www.codeproject.com/kb/mobile/Wimopower1.aspx (以下のサンプル プログラムのスクリーンショット) を参照してください。スクリーンショットからわかるように、バッテリーの電圧、電流プル、バッ​​テリーの種類などを知ることができます。瞬間的な消費電力を正確に測定するには、外部ハードウェアが必要です (そして、測定のためにハードウェアに投資したくないと思います)。

別のデバイスでプログラムを実行したときに観察されるものを代表していない可能性があるため、相対的な測定値を取得してください。

サンプル プログラムのスクリーンショット http://www.codeproject.com/kb/mobile/WiMoPower1/TitleImage.png

于 2009-04-07T11:58:34.653 に答える
3

単一のプロセスを分離して単独で実行することはできないため、これを測定するのはかなり難しいように思えます。実際、そうしようとすると、「単一のプロセス」を構成するものを定義するのが困難になります。それは、そのプログラムに属するユーザー空間コードだけですか? それとも、プログラムに代わって実行されるカーネル コードも含めますか? OS がカーネル コードを最適化して、異なるプログラムからの同様の要求をまとめて処理し、ほぼ一定量のエネルギーを使用するとしたらどうでしょうか? そうなると、エネルギー使用量をプログラムごとに分けることさえできなくなります。

このような場合、私の傾向は期待値、つまりアプリケーションによって使用されるエネルギーの平均量を測定することです。理想的には、多数のシステムから開始することをお勧めします。これらのシステムの半分ではアプリケーションが実行されており、残りの半分ではアプリケーションが実行されていないことを除いて、すべて同じです。各システムを、テストしたい動作条件下で実行させます (もちろん、半分はアプリを実行しており、半分は実行していないという事実を除いて、すべてのデバイスで同じ条件です)。エネルギーの割合を測定します。標準 API を使用して消費量を測定するか、バッテリーを使い果たし、各ユニットがバッテリーを消耗するのにかかる時間を測定します。次に、アプリを実行していたデバイスの平均結果とそうでないデバイスの平均結果を比較します。

于 2009-04-07T07:02:48.200 に答える
1

本当に API を自分で呼び出したい場合は、どれを呼び出せばよいかわかりませんが、特定のアプリケーションの実行中の消費電力を知りたいだけの場合は、acbPowerMeterアプリケーションを使用できます。

acbPowerMeter は、デバイスのリアルタイムの電力使用量をグラフ化します。このユーティリティは非常に軽量で、バッテリー使用量のベンチマークを行うことができます。

于 2009-04-07T06:58:25.480 に答える
0

私の 2 セントを追加すると、 INTEL RALP アーキテクチャを使用してエネルギー消費を測定できるライブラリがいくつかあります。

PAPIjRALPがあります。

jRALP の使用は簡単に思えます。

  double beginning = EnergyCheck.statCheck();
  doWork();
  double end = EnergyCheck.statCheck();

OPにとって残念なことに、それらは(よくわかりませんが)Windows対応ではないようで、特定のIntelプロセッサでのみ機能します。

于 2016-07-17T11:00:41.570 に答える