6

是否可以确定甚至合理估计程序正在使用多少功率?这个想法是根据功耗而不是典型性能来分析我的代码。

测量 CPU 使用、GPU 使用和内存访问是否足够?

4

2 回答 2

4

有很多方面会影响应用程序的功耗,并且这些方面会因使用的硬件而有很大差异。

获得一个想法最简单的方法是衡量它。如果您的程序正在进行大量计算,则测量差异非常简单。只需在应用程序运行时读出使用情况,并在不运行时减去使用情况。

如果您的应用程序不是繁重的计算类型,那么挑战会更大,因为简单的 1 时间点比较无法解决问题。您可以获得一个可以记录一段时间内使用情况的测量设备,您需要将该日志与您的机器记录的进程活动进行比较,并尝试过滤掉所有其他计划任务(检查更新等)。

如果您想这样做,请提示,APC 的 UPS 内置了此功能,PowerChute软件将功耗日志存储在 Access 数据库中(C:\Program Files\APC\PowerChute Personal Edition\EnergyLog.mdb )。我不确定这是否适用于所有型号,但这是我 ( Pro 550 ) 附带的一个不错的额外功能。我会将数据放在Xperf 跟踪(Windows 中的免费内置分析器,在此处查看概述)旁边,以便将功率变化与您的应用程序活动相关联,并过滤掉预定的作业等...

也就是说,记住你会在不同的硬件上得到不同的结果。ssd 与传统硬盘不同,使用的 grafix 适配器也会有所不同,因此您只能通过在“典型”系统上进行测量来获得总体粗略估计。桌面系统将比笔记本电脑消耗更多的资源,等等......(另见这篇博文)。

功耗分析工具在移动设备中更为常见。我不是该领域的专家,但我知道那里有很多工具

于 2014-01-04T11:44:01.920 回答
1

有一个项目可以让你在 Linux 上获取给定 PID 程序的功耗,不需要硬件:scaphandre

有了它,您可以创建 grafana 仪表板来跟踪给定项目从一个版本到另一个版本的功耗。例子可以在这里看到。

于 2021-01-11T11:40:02.220 回答