profiler - 是否可能/容易确定程序使用了多少功率?

标签 profiler energy

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

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

最佳答案

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

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

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

如果你想走这条路,只是一个提示,APC 的 UPS 内置了此功能,PowerChute软件将功耗日志存储在 Access 数据库 (C:\Program Files\APC\PowerChute Personal Edition\EnergyLog.mdb) 中。我不确定这是否适用于所有型号,但这是我的一个很好的额外功能( Pro 550 )。我会将数据放在 Xperf trace 旁边(Windows 中免费的内置分析器,look here for an overview),以便将功率变化与您的应用程序事件相关联,并过滤掉计划作业等...

也就是说,请记住,您将在不同的硬件上获得不同的结果。 ssd 与传统硬盘不同,使用的 grafix 适配器也会有所不同,因此您只能通过在“典型”系统上进行测量来获得总体粗略估计。台式机系统将比笔记本电脑等消耗更多...(另请参阅 this blogpost )。

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

关于profiler - 是否可能/容易确定程序使用了多少功率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907535/

相关文章:

netbeans - 无法启动Java ME项目的Netbeans 7.2 Profiler

java - VisualVM/OQL 如何通过长id获取结果?

ubuntu - 使用 ubuntu 9 设置速度跟踪器

android - 智能手机组件的能耗

java - 是否有任何 Android API 来获取 CPU 和电池状态?

c# - Visual Studio Performance Profiler "Force GC"按钮实际上在做什么?

tomcat - Netbeans Profiler 抛出 - 保存的校准数据文件不存在错误

sql - 使用 ORDER BY 时数据库性能不佳

ubuntu - 从 ubuntu powertop 工具中提取特定进程的功耗

amazon-web-services - 如何测量云环境中虚拟机的功耗?