How to get percentage of CPU usage of OS from java

后端 未结 2 1458
野性不改
野性不改 2020-12-01 02:24

I want to calculate percentage of CPU usage of OS from java code.

  1. There are several ways to find it by unix command [e.g. using mpstat
相关标签:
2条回答
  • 2020-12-01 02:45

    In Java 7 you can get it like so:

    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);
    }
    
    0 讨论(0)
  • 2020-12-01 03:00

    You can use the SIGAR API. It is cross platform ( but I've only use it on Windows).

    The Javadoc is available here and the binaries are here

    It is licensed under the terms of the Apache 2.0 license.

    0 讨论(0)
提交回复
热议问题