我已经找到了答案,但似乎没有人能确切地回答我的问题。当java程序或任何程序在虚拟机中执行时,我想测量虚拟机的能耗。另外,如果我们能够测量虚拟机中每个核心的能耗,那就太棒了。Java中的哪个插件可以用来衡量虚拟机的能耗?
发布于 2015-12-04 16:50:30
有几种方法可以测量虚拟机的能量。
我假设您希望测量虚拟机的能量以及它正在执行的程序(如果有)。(要找到虚拟机(例如JVM )本身的能耗,而不包括在虚拟机上执行的程序要困难得多。
有几种方法可以测量JVM的总能量。
在所有情况下,最准确的结果将是几个样本/测试运行的平均值。在计算机系统中有很多事情发生,其中很多是间歇性的,例如垃圾收集、中断处理和支持后台进程的虚拟机。
#1的缺点是它需要外部硬件。此外,它还包括所有的东西,如外部外设、内存等。您需要计算能源使用的差异。
#2的缺点是PAPI只是API,它们的实现是隐藏的。由于支持的处理器HW事件在不断变化,许多PAPI间接地测量事物,只能给出非常近似的结果。
#3的缺点是PMU事件由定义依赖于硬件。PAPI是解决这个问题的一种尝试。而且,早期的处理器通常没有能量PMU事件。
#4的缺点与#2的缺点相似。
祝好运。
* 性能应用程序接口,而不是Java访问控制API。
发布于 2015-12-04 07:00:11
Java是安全的。它保护您不与您的实际硬件集成太多。我可以建议你不要使用Java。您应该使用一些系统语言(例如bash脚本)从硬件中获取元数据,然后将其写入Java可以轻松读取的内容(文件、套接字等)。
https://stackoverflow.com/questions/34081364
复制相似问题