【问题标题】:How can I measure the energy consumption of my application on Windows Mobile and Windows CE?如何在 Windows Mobile 和 Windows CE 上测量我的应用程序的能耗?
【发布时间】:2010-10-17 23:36:28
【问题描述】:

我要测量能耗

  • 我自己的应用程序(我可以修改)
  • 第三方应用程序(我无法修改)

  • Windows CE 5.0
  • Windows Mobile 5/6

有什么 API 可以解决这个问题吗?

如果没有,我可以测量其他可以用来估算能耗的值吗?

我不需要像 20 mAh 这样的精确值(虽然那会很好)一个相对值就足够了,比如:“从 100% 到 0% 的充电状态,大约 20% 的充满电的电池是此应用程序使用”

另一方面,测量特定于单个应用程序非常重要,即我不希望对一组应用程序进行聚合测量,例如“这三个应用程序一起消耗......”

【问题讨论】:

    标签: windows-mobile windows-ce energy


    【解决方案1】:

    加上我的两分钱,有几个库可以使用INTEL RALP architecture 测量能耗:

    PAPIjRALP

    jRALP 的使用似乎很简单:

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

    不幸的是,对于 OP,它们似乎(我不确定)不是 Windows 就绪的,它们仅适用于某些 Intel 处理器。

    【讨论】:

      【解决方案2】:

      有一个 API 可用于获取有关功耗的信息,但此 API 返回的信息的准确性取决于 OEM(某些 OEM 根本不提供该信息)。有关此 API 的示例代码的更多信息可以在 http://www.codeproject.com/kb/mobile/Wimopower1.aspx 找到(下面的示例程序的屏幕截图)。正如您从屏幕截图中看到的那样,您可以了解电池的电压、电流拉动、电池类型等。瞬时功耗的准确测量需要外部硬件(我假设您不想进行硬件投资来进行测量)。

      采取任何你得到的相对测量,因为它们可能不能代表你在不同设备上运行程序时观察到的情况。

      Screenshot of Example Program http://www.codeproject.com/kb/mobile/WiMoPower1/TitleImage.png

      【讨论】:

      • 您可以获取运行“基础”软件的功耗,然后启动另一个应用程序并进行另一个测量。然后减去基本测量值,您就有了应用程序的平均功耗。
      【解决方案3】:

      这似乎是一件很难衡量的事情,因为您无法真正隔离单个进程以使其自行运行。事实上,如果你试图这样做,你会遇到定义什么构成“单一进程”的困难——它只是属于该程序的用户空间代码吗?或者你是否也包括代表程序执行的内核代码?如果操作系统优化内核代码,以便一起处理来自不同程序的类似请求,使用几乎恒定的能量会怎样?然后你甚至无法按程序分离能源使用情况。

      在这种情况下,我倾向于测量期望值,本质上是应用程序使用的平均能量。理想情况下,您会从大量系统开始,除了其中一半运行应用程序而另一半没有运行之外,所有系统都相同。让每个系统在您想要测试的任何操作条件下运行(当然,所有设备都在相同的条件下运行,除了其中一半正在运行应用程序而另一半没有),然后测量能量率使用标准 API 消耗,或者让电池耗尽并测量每个单元耗尽其电池所需的时间。然后比较运行该应用程序的设备的平均结果与未运行该应用程序的设备的平均结果,您就可以计算出该程序增加了多少计算机的功耗。

      【讨论】:

        【解决方案4】:

        如果您真的想自己调用 api,我不知道该调用哪一个,但如果您只想知道运行某些应用程序时的功耗情况,您可以使用 acbPowerMeter 应用程序。

        acbPowerMeter 实时绘制图表 您的设备的电源使用情况。这 实用程序非常轻巧,允许 对您的电池使用情况进行基准测试。

        【讨论】:

          猜你喜欢
          • 2019-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-25
          • 2011-07-03
          • 2013-09-15
          • 1970-01-01
          相关资源
          最近更新 更多