使用 OperatingSystemMXBean 获取 CPU 使用率
我正在尝试使用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());
}
}
在两台计算机上测试后,我无法停止获得两个调用的结果。我尝试通过各种方法使用Java 7和6的64位和32位版本运行此代码。尽管如此,我得到的只是一个打印出来的,根据Javadocs的说法,-1.0
-1.0
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这样的库。有人对这个问题有任何建议或见解吗?