首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从java中获取操作系统的CPU使用率

如何从java中获取操作系统的CPU使用率
EN

Stack Overflow用户
提问于 2013-08-28 21:25:34
回答 2查看 55.8K关注 0票数 26

我想从java代码中计算操作系统的CPU使用率。

  1. 有几种方法可以通过unix命令找到它,例如使用mpstat/proc/stat等。并在Runtime.getRuntime().exec

中使用它

但我不想使用系统调用。

我试过ManagementFactory.getOperatingSystemMXBean()

代码语言:javascript
复制
OperatingSystemMXBean osBean =
         (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println(osBean.getSystemLoadAverage());

但它给出的是cpu负载,而不是cpu使用率。有没有办法找出使用率?

EN

回答 2

Stack Overflow用户

发布于 2014-02-23 07:25:37

在Java 7中,你可以像这样得到它:

代码语言:javascript
复制
public static double getProcessCpuLoad() throws Exception {

    MBeanServer mbs    = ManagementFactory.getPlatformMBeanServer();
    ObjectName name    = ObjectName.getInstance("java.lang:type=OperatingSystem");
    AttributeList list = mbs.getAttributes(name, new String[]{ "ProcessCpuLoad" });

    if (list.isEmpty())     return Double.NaN;

    Attribute att = (Attribute)list.get(0);
    Double value  = (Double)att.getValue();

    // usually takes a couple of seconds before we get real values
    if (value == -1.0)      return Double.NaN;
    // returns a percentage value with 1 decimal point precision
    return ((int)(value * 1000) / 10.0);
}
票数 43
EN

Stack Overflow用户

发布于 2013-08-28 21:42:39

您可以使用SIGAR API。它是跨平台的(但我只在Windows上使用过它)。

Javadoc是可用的here,二进制文件是here

它是根据Apache2.0许可条款进行许可的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18489273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档