# 电源测量的软件工具

## 软件测量工具与应用

为了获得有关计算机平台在运行期间消耗了多少能量的最佳和最准确的数据，需要一个硬件功率计。 Fluke的网络数据采集单元（NetDAQ），National Instrument DAQ和Yokogawa WT210是此类采集系统的示例。但是，硬件功率计通常非常昂贵，对于仅感兴趣的普通消费者或应用程序开发人员来说，这些成本就显得过高了， 一次左右的功率测量。对于这些用户，选择测量功耗的软件工具或应用程序更有意义。

此类测量工具和应用程序主要用于在运行和不运行工作负载的情况下识别电源问题，以优化系统的功耗。通常遇到的问题包括：

* CPU /芯片组电源：通过检查CPU C状态驻留时间来确定是否以最佳方式管理CPU和芯片组电源，并深入了解导致平台功耗增加的原因，可以识别出此类问题。例如，由于设备中断或软件活动，在深C状态（例如C3）的高驻留状态可能指示频繁的C状态转换。
* CPU利用率：通常采用CPU利用率示例

  在每个计时器滴答中断时-即每15.6毫秒

  大多数媒体应用程序和某些后台应用程序。但是，可以将计时器分辨率从默认的15.6毫秒缩短为试图捕获其中的活动

  较短的时间。对于多核CPU，CPU利用率和功耗取决于活动持续时间，而每个核

  可能仅在平台处于活动状态的总持续时间的一部分中处于活动状态。因此，CPU核心利用率和平台利用率应分开计算。逻辑上，当两个内核的活动重叠时，大多数电源测量工具会将CPU利用率显示为两个利用率的总和。实际上只有极少数工具（其中包括Intel Battery Life Analyzer）可以使用细粒度的过程信息来确定平台程序包和逻辑CPU的总活动时间。通过调查CPU利用率，可以识别出效率低下的软件组件及其热点，并可以确定软件组件及其热点的影响来寻找优化机会。
* CPU活动频率：电动工具可帮助识别导致CPU状态频繁转换的软件组件。确定每个组件的活动频率以及每个滴答周期中发生的活动数量非常有价值。了解为什么频繁发生过渡可能有助于指出与电源相关的问题或改进前景。
* GPU功能：在现代处理器上，由于大多数媒体应用程序都在GPU上运行，因此了解GPU C状态转换和GPU利用率的影响也很重要。 GPU利用率在很大程度上控制了媒体应用程序的功耗。但是，只有很少的工具能够报告GPU利用率。英特尔GPA就是这样一种工具。

  通常，有几种工具和应用程序可用于测量和分析计算设备各个组件的功耗。有些与分析空闲系统行为特别相关，而另一些则适合于媒体应用程序。在下一节中，我们将讨论其中一些工具，首先是基于Linux / Android的PowerTop，然后介绍几种基于Windows的工具。然后，我们讨论监视和分析电池寿命的特定工具。强力病毒

  还提到了它，主要用于热测试。但是，随着新工具的不断开发，显然没有涵盖某些工具。

## PowerTop

PowerTop是由Intel开发并获得GPL许可发布的软件实用程序，旨在测量和分析运行在Android，Linux或Solaris操作系统上的应用程序，设备驱动程序和内核的功耗。 这对识别有电源问题的程序，并查明导致过度用电的软件。 这对于延长电池寿命的移动设备特别有用。

## PowerCfg

PowerCfg是Windows中的命令行工具，允许用户控制系统的电源管理设置以及查看或修改电源策略。 它通常用于检测电源效率，处理器利用率，计时器分辨率，USB设备选择性挂起，电源请求和电池容量中的常见问题。

## PwrTest

PwrTest是Windows驱动程序工具包中提供的电源管理测试工具，它使应用程序开发人员和系统集成商能够从电源管理信息中获取电源管理信息，例如各种睡眠状态信息（例如C状态和P状态信息）和电池信息。 系统并记录一段时间。

## Perfmon和Xperf

Windows Perfmon提供了监视Windows中可用的性能计数器（包括C状态和P状态驻留状态）的功能，这些功能有助于理解CPU利用率和与活动有关的问题。 Xperf是一种命令行工具，可通过监视系统和内核事件（如一段时间内的上下文切换，中断服务例程和延迟的过程调用）并生成报告进行图形审查来帮助开发人员进行系统范围的性能分析。 在系统处于空闲状态，正在运行Web浏览或媒体应用程序期间，将事件与系统状态关联起来很有用。 Xperf生成事件跟踪日志，可以使用Xperfview查看它。 Windows Performance Toolkit中提供了这两个工具。

## Joulemeter

Joulemeter由Microsoft Research开发，是一种建模工具，用于测量虚拟机（VM），各种外形尺寸和功率容量的计算机甚至计算机上运行的各个软件应用程序的能耗。 它可以测量CPU，屏幕，内存和存储等组件对其总功耗的影响 采用。 它的优点之一是它可以测量不具有硬件接口，因此不适合使用硬件功率计进行测量的软件组件（例如VM）的影响。

可从Joulemeter获得的数据包括每个组件的当前能源使用情况，例如基本或闲置能源使用情况，高于基准闲置状态的CPU使用情况，监视器和硬盘。 输出数据以瓦特表示，并且每秒更新一次。 可以在焦耳计中找到详细信息：计算能量的测量和优化。

## 英特尔Power Gadget

为了帮助最终用户，独立软件供应商，原始设备制造商和应用程序开发人员在不使用系统任何硬件仪器的情况下准确估算功耗，英特尔开发了一种名为英特尔Power Gadget的软件工具，该工具可用于第二代英特尔核心处理器。该工具的其他功能包括估算多路插座系统上的电源以及可在应用程序代码的各个部分中提取电源信息的外部可调用API。 该小工具包括Microsoft Windows侧栏小工具，驱动程序和库，可使用处理器中的电能计数器来监视和估计以瓦特为单位的实时处理器封装功率信息。安装后，可以在运行工作负载或系统空闲时简单地启动小工具以监视处理器的电源使用情况。 “选项”弹出窗口允许以毫秒为单位设置采样分辨率，以瓦特为单位设置最大功率。输出数据（特别是处理器封装的功率和频率）是实时生成的，可以用逗号分隔值（CSV）格式记录在文件中。可以从Intel网站下载该小工具。

## 英特尔Power Checker

英特尔功率或能量检查器工具根据所做的有用工作来确定系统的电源效率，该工作涉及工作期间消耗的能量。对于媒体或游戏应用程序开发人员来说，这是一种简便的方法，可以在使用Intel Core或Atom处理器的移动平台上检查其应用程序的电源效率。该工具不需要外部功率计，可用于为英特尔处理器或Java框架应用程序编译的任何应用程序的功率分析。 默认情况下，此工具检查系统功能以提供功耗 数据以及是否安装了称为EzPwr.sys的特定驱动程序（英特尔Power Gadget的一部分），如果使用外部功率计设备，则很有必要。通常，该工具首先在不运行目标应用程序的情况下测量基准功率，同时关闭不必要的进程，例如操作系统更新，Windows索引服务，病毒扫描，Internet浏览器等。在下一步中，将运行目标应用程序，并从目标应用程序执行的期望点开始再次测量功率。最后，当目标应用程序完成并返回到空闲状态时，它将再次测量电源。该工具提供对经过时间，能耗和平均C3状态驻留时间的分析，并提供平台计时器持续时间（以毫秒为单位）。该工具现在是英特尔软件开发助手的一部分。

## 英特尔电池寿命分析仪

英特尔电池寿命分析器（BLA）是在Microsoft Windows上运行的软件工具，主要用于监视硬件和软件平台组件的活动并确定其对电池寿命的影响。它可以识别阻止平台进入低功耗状态的驱动程序，进程或硬件组件。 BLA具有许多支持功耗分析的模块，包括CPU C状态和软件活动分析。 系统在深C状态花费的时间越长，消耗的功率就越少。 BLA建议使用C状态驻留程序的阈值，尤其是对于包含多个处理器内核的处理器封装（即插槽），空闲时最深的C状态驻留率应大于95％，每个内核98％。同样，闲置时，包装的C0和C1状态应小于5％。 BLA工具中有一些选项可以设置适当的C状态阈值。可以通过Intel的电子邮件请求BLA工具的副本。

## 英特尔图形性能分析器

英特尔图形性能分析器2013（英特尔GPA）是一套由三个图形分析和优化工具组成的套件，即系统分析器，帧分析器和平台分析器，可帮助游戏和媒体应用程序开发人员优化游戏和其他图形密集的应用程序。英特尔GPA支持运行Microsoft Windows 7、8、8.1或Android操作系统的最新一代基于Intel Core和基于Intel Atom处理器的平台。系统分析仪实时提供CPU和GPU的性能和功耗指标，并允许用户快速确定工作负载是CPU约束还是GPU约束，因此用户可以专注于特定的优化工作。帧分析器能够分析性能并降低功耗到帧级别。平台分析器通过上下文中的任务，线程，Microsoft DirectX和GPU加速的媒体应用程序的时间线视图，提供CPU和GPU指标以及工作负载的离线分析。该工具也可以从Intel获得。

## GPU-Z和HWiNFO

GPU-Z是TechPowerUp的轻型系统实用程序，旨在提供有关视频卡和/或集成图形处理器的重要信息； 它支持nVIDIA，ATI和Intel图形设备。 HWiNFO是可从Internet获得的免费软件，它结合了CPU-Z和GPU-Z的功能，并提供CPU，GPU和内存使用情况以及其他系统信息。

## Power Virus

Power Virus执行特定的机器代码以达到最大CPU功耗限制，即CPU的最大热能输出。 该应用程序通常用于在产品的设计阶段对计算机组件进行集成测试和热测试，或用于使用综合基准进行产品基准测试。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wangwei1237.gitbook.io/digital_video_concepts/shi-pin-ying-yong-de-hao-dian-liang/6_7_0_toolsandapplications/6_7_2_softwaretoolsandapplications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
