JAVA 利用Sigar获取系统性能信息

java获取机器的一些系统性能,百度出来也有好多详解。我做了简单测试,自己记录下。

获取 内存信息,CPU情况,磁盘空间等信息用了个第三方jar Sigar,这软件可以获取linux或window的信息,依靠的so和dll这样的动态链接库来实现的


public static void main(String[] args) {
try {
String lineseparator = System.getProperty("line.separator");
Sigar sigar = new Sigar();
StringBuffer sb=new StringBuffer();
//2 获取操作系统
sb.append("当前系统:"+prop.getProperty("os.name")+",版本信息:"+prop.getProperty("os.version")).append(lineseparator);
sb.append("-----------------------------------------").append(lineseparator);
//3内存数量,以及使用情况
Mem mem = sigar.getMem();
sb.append("系统内存"+lineseparator+"空闲内存:"+Utils.formatMB(mem.getActualFree())+"MB ");
sb.append("总内存:"+Utils.formatMB(mem.getTotal())+"MB ");
sb.append("使用内存:"+Utils.formatMB(mem.getActualUsed())+"MB ");
sb.append("内存使用率:"+Utils.format(mem.getUsedPercent())+"% ").append(lineseparator);
sb.append("-----------------------------------------").append(lineseparator);
//4存储空间情况
sb.append("存储空间").append(lineseparator);
List space= FileSystemInfo.getFileSystemInfo();
for(int i=0;i FileSystemInfoBean bean = space.get(i);
String dirName=bean.getDirName().replaceAll(":", "");
dirName=dirName.replaceAll("|", "");
sb.append(dirName+":");
sb.append("总空间:"+bean.getTotalSpace()+"GB ");
sb.append("空闲空间:"+bean.getFreeSpace()+"GB ");
sb.append("使用空间:"+bean.getUsedSpace()+"GB ");
sb.append("使用率:"+bean.getUsedPercent()+"% ").append(lineseparator);
}
sb.append("-----------------------------------------").append(lineseparator);
//5CPU数量以及使用情况:
CpuPerc cpu = sigar.getCpuPerc();
sb.append("CPU情况").append(lineseparator);
sb.append("CPU数量:"+sigar.getCpuInfoList().length+" ");
sb.append("用户使用CPU:"+Arith.round(cpu.getUser()*100, 2)+"% ");
sb.append("系统使用CPU:"+Arith.round(cpu.getSys()*100, 2)+"% ");
sb.append("空闲CPU:"+Arith.round(cpu.getIdle()*100, 2)+"% ");
sb.append("等待CPU:"+Arith.round(cpu.getWait()*100, 2)+"% ");
sb.append("总使用CPU:"+Arith.round(cpu.getCombined()*100, 2)+" ").append(lineseparator);
sb.append("-----------------------------------------").append(lineseparator);
//7.JDK版本,以及使用情况
sb.append("JDK版本:"+prop.getProperty("java.version"));
System.out.println(sb.toString());
sigar.close();
} catch (Exception e) {
// TODO: handle exception
}
}

你可能感兴趣的:(JAVA)