nad*_*adh 11 java performance jmx cross-platform cpu-usage
有没有办法测量JVM的CPU使用率(一旦启动java应用程序)跨平台(windows + unix + mac)?我使用过Jconsole,但我需要的是一个执行此操作的java代码,而不是一个可以监视CPU利用率的工具.我试过了
ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()
Run Code Online (Sandbox Code Playgroud)
使用JMX,但它没有帮助,因为我需要的是JVM的特定CPU使用率(比如当我启动服务器时),而不是系统负载平均值.
您应该查看Thread MBean 中的ThreadMXBean.getCurrentCPUTime()方法.
线程CPU时间
Java虚拟机实现可以支持测量当前线程,任何线程或无线程的CPU时间.
还有JTOP示例应用程序是JDK jdk\demo\management\JTop\src\JTop.java
或此处的一部分.看一下:
/**
* Get the thread list with CPU consumption and the ThreadInfo for each thread
* sorted by the CPU time.
*/
private List<Map.Entry<Long, ThreadInfo>> getThreadList()
Run Code Online (Sandbox Code Playgroud)