首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用java测量能源消耗

用java测量能源消耗
EN

Stack Overflow用户
提问于 2015-12-04 05:16:58
回答 2查看 1.6K关注 0票数 1

我已经找到了答案,但似乎没有人能确切地回答我的问题。当java程序或任何程序在虚拟机中执行时,我想测量虚拟机的能耗。另外,如果我们能够测量虚拟机中每个核心的能耗,那就太棒了。Java中的哪个插件可以用来衡量虚拟机的能耗?

EN

回答 2

Stack Overflow用户

发布于 2015-12-04 16:50:30

有几种方法可以测量虚拟机的能量。

我假设您希望测量虚拟机的能量以及它正在执行的程序(如果有)。(要找到虚拟机(例如JVM )本身的能耗,而不包括在虚拟机上执行的程序要困难得多。

有几种方法可以测量JVM的总能量。

  1. 你可以从墙上量。看看这个职位
  2. 使用JNI在JVM下钻取并使用PAPI* API。
  3. 使用JNI在JVM下钻取并使用平台相关硬件PMU事件计数器
  4. 使用底层内核数据结构或API。

在所有情况下,最准确的结果将是几个样本/测试运行的平均值。在计算机系统中有很多事情发生,其中很多是间歇性的,例如垃圾收集、中断处理和支持后台进程的虚拟机。

#1的缺点是它需要外部硬件。此外,它还包括所有的东西,如外部外设、内存等。您需要计算能源使用的差异。

#2的缺点是PAPI只是API,它们的实现是隐藏的。由于支持的处理器HW事件在不断变化,许多PAPI间接地测量事物,只能给出非常近似的结果。

#3的缺点是PMU事件由定义依赖于硬件。PAPI是解决这个问题的一种尝试。而且,早期的处理器通常没有能量PMU事件。

#4的缺点与#2的缺点相似。

祝好运。

* 性能应用程序接口,而不是Java访问控制API

票数 3
EN

Stack Overflow用户

发布于 2015-12-04 07:00:11

Java是安全的。它保护您不与您的实际硬件集成太多。我可以建议你不要使用Java。您应该使用一些系统语言(例如bash脚本)从硬件中获取元数据,然后将其写入Java可以轻松读取的内容(文件、套接字等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34081364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档