java - Windows 的 getSystemLoadAverage() 替代方法?

标签 java cpu cpu-usage cpu-speed mxbean

我正在使用一些代码来使用 Java 监控 Cpu 负载。我在我的应用程序中使用以下代码来获取系统负载

public static double getCPULoad() {
    OperatingSystemMXBean osMBean
                = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

    double load = osMBean.getSystemLoadAverage();
    return load;
}

但在 Windows 上它返回负值 (-1.0)。有什么办法可以解决这个问题吗?

最佳答案

请阅读this blog . 这不是官方解决方案,但是当使用 com.sun.management.OperatingSystemMXBean 而不是 java.lang.management.OperatingSystemMXBean 时,有两种方法 getSystemCpuLoad()getProcessCpuLoad() 正在工作。

关于java - Windows 的 getSystemLoadAverage() 替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872306/

相关文章:

assembly - 操作系统在实模式下有多好?

java - 限制 Java CPU 和内存使用

Android 应用程序 CPU 使用率高

java.lang.NoClassDefFoundError : org/apache/lucene/codecs/simpletext/SimpleTextCodec

java - 当在派生类上调用时,在基类中定义一个泛型方法返回 Java 中的派生类类型

java - 帮助 EJB 创建无状态 session Bean

Java JProgressBar 使用图像

ruby - 这个 Ruby 代码和 shell 代码有什么区别?

cpu - "CPU jumps"是什么意思?

java - JVM CPU 峰值故障排除