转载

OperatingSystemMXBean获取系统性能指标

变量和类型 方法 描述
long getCommittedVirtualMemorySize()
以字节为单位返回保证可供运行进程使用的虚拟内存量,如果不支持此操作,则 -1 。
long getFreePhysicalMemorySize()
以字节为单位返回可用物理内存量。
long getFreeSwapSpaceSize()
返回可用交换空间量(以字节为单位)。
double getProcessCpuLoad()
返回Java虚拟机进程的“最近的cpu用法”。
long getProcessCpuTime()
返回运行Java虚拟机的进程使用的CPU时间(以纳秒为单位)。
double getSystemCpuLoad()
返回整个系统的“最近的cpu使用率”。
long getTotalPhysicalMemorySize()
以字节为单位返回物理内存总量。
long getTotalSwapSpaceSize()
以字节为单位返回交换空间的总量。

来个例子

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

public class Test {
 public static void main(String[] args) throws InterruptedException {
 final long GB = 1024 * 1024 * 1024;
 OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
 System.out.println("进程CPU使用率: "+operatingSystemMXBean.getProcessCpuLoad()* 100+"%");
 System.out.println("系统CPU使用率: "+operatingSystemMXBean.getSystemCpuLoad()* 100+"%");
 System.out.println("物理内存总量: "+operatingSystemMXBean.getTotalPhysicalMemorySize()/GB+"GB");
 System.out.println("物理内存剩余可用量: "+operatingSystemMXBean.getFreePhysicalMemorySize()/GB+"GB");
 System.out.println("内存使用率: "+(double)100*operatingSystemMXBean.getFreePhysicalMemorySize()/operatingSystemMXBean.getTotalPhysicalMemorySize()+"%");
 System.out.println("交换空间总量: "+operatingSystemMXBean.getTotalSwapSpaceSize()/GB+"GB");
 System.out.println("交换空间剩余可用量: "+operatingSystemMXBean.getFreeSwapSpaceSize()/GB+"GB");
 System.out.println("CPU核心数: "+operatingSystemMXBean.getAvailableProcessors()+"个");
 System.out.println("已提交虚拟内存量: "+operatingSystemMXBean.getCommittedVirtualMemorySize());
 System.out.println("进程已使用CPU时间: "+operatingSystemMXBean.getProcessCpuTime()/1000000000.0+"秒");
 }
}
     
正文到此结束
Loading...