Java API to get CPU and memory usage of my java application

chang zang picture chang zang · Apr 15, 2016 · Viewed 10.1k times · Source

I need an API to get CPU & memory usage of my current process or application in java.

I've got an API to get the CPU usage of the complete system but I need it for a particular process (getSystemCpuLoad of OperatingSystemMXBean interface)

Thanks in advance

Answer

RubioRic picture RubioRic · Apr 15, 2016

You can obtain that data if you use a different OperatingSystemMXBean.

Check the imported package: com.sun.management.OperatingSystemMXBean.

 import java.lang.management.ManagementFactory;
 import com.sun.management.OperatingSystemMXBean;

 public class Test {

 public static void main(String[] args) {
       OperatingSystemMXBean operatingSystemMXBean = 
          (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
       System.out.println(operatingSystemMXBean.getProcessCpuLoad());
 }}

https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html

If I'm not mistaken, this class is included in rt.jar, present in your java runtime.