我正在尝试使用 Java 来获取当前运行的 Java 虚拟机使用的 CPU 百分比。我的研究表明我要使用该com.sun.management.OperatingSystemMXBean
课程。按照网上的例子,我写了以下内容:
import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
public class TestClass {
public static void main (String[] args) {
OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println(bean.getProcessCpuLoad());
System.out.println(bean.getSystemCpuLoad());
}
}
在两台机器上测试后,我无法停止获得-1.0
两个调用的结果。我尝试通过各种方法使用 64 位和 32 位版本的 Java 7 和 6 运行此代码。-1.0
尽管如此,根据 Javadocs ,我得到的只是打印出来的,
All values betweens 0.0 and 1.0 are possible depending of the activities going on in the system. If the system recent cpu usage is not available, the method returns a negative value.
我不知道在这里还能做什么。获得 CPU 负载至关重要,我想避免使用像 Sigar 这样的其他库。有人对此问题有任何建议或有任何见解吗?