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

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

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

Java代码   收藏代码
  1. public static void main(String[] args) {  
  2.         try {  
  3.             String lineseparator = System.getProperty("line.separator");  
  4.             Sigar sigar = new Sigar();  
  5.              StringBuffer sb=new StringBuffer();  
  6.              //2 获取操作系统     
  7.              sb.append("当前系统:"+prop.getProperty("os.name")+",版本信息:"+prop.getProperty("os.version")).append(lineseparator);  
  8.              sb.append("-----------------------------------------").append(lineseparator);  
  9.              //3内存数量,以及使用情况  
  10.              Mem mem = sigar.getMem();  
  11.              sb.append("系统内存"+lineseparator+"空闲内存:"+Utils.formatMB(mem.getActualFree())+"MB ");  
  12.              sb.append("总内存:"+Utils.formatMB(mem.getTotal())+"MB ");  
  13.              sb.append("使用内存:"+Utils.formatMB(mem.getActualUsed())+"MB ");  
  14.              sb.append("内存使用率:"+Utils.format(mem.getUsedPercent())+"% ").append(lineseparator);  
  15.              sb.append("-----------------------------------------").append(lineseparator);  
  16.              //4存储空间情况  
  17.              sb.append("存储空间").append(lineseparator);  
  18.              List<FileSystemInfoBean> space= FileSystemInfo.getFileSystemInfo();  
  19.              for(int i=0;i<space.size();i++){  
  20.                 FileSystemInfoBean bean = space.get(i);  
  21.                 String dirName=bean.getDirName().replaceAll(":""");  
  22.                 dirName=dirName.replaceAll("|""");  
  23.                 sb.append(dirName+":");  
  24.                 sb.append("总空间:"+bean.getTotalSpace()+"GB ");  
  25.                 sb.append("空闲空间:"+bean.getFreeSpace()+"GB ");  
  26.                 sb.append("使用空间:"+bean.getUsedSpace()+"GB ");  
  27.                 sb.append("使用率:"+bean.getUsedPercent()+"% ").append(lineseparator);  
  28.             }  
  29.             sb.append("-----------------------------------------").append(lineseparator);  
  30.             //5CPU数量以及使用情况:  
  31.             CpuPerc cpu = sigar.getCpuPerc();  
  32.             sb.append("CPU情况").append(lineseparator);  
  33.             sb.append("CPU数量:"+sigar.getCpuInfoList().length+" ");  
  34.             sb.append("用户使用CPU:"+Arith.round(cpu.getUser()*1002)+"% ");  
  35.             sb.append("系统使用CPU:"+Arith.round(cpu.getSys()*1002)+"% ");  
  36.             sb.append("空闲CPU:"+Arith.round(cpu.getIdle()*1002)+"% ");  
  37.             sb.append("等待CPU:"+Arith.round(cpu.getWait()*1002)+"% ");  
  38.             sb.append("总使用CPU:"+Arith.round(cpu.getCombined()*1002)+" ").append(lineseparator);  
  39.             sb.append("-----------------------------------------").append(lineseparator);  
  40.             //7.JDK版本,以及使用情况  
  41.             sb.append("JDK版本:"+prop.getProperty("java.version"));  
  42.             System.out.println(sb.toString());  
  43.             sigar.close();  
  44.         } catch (Exception e) {  
  45.             // TODO: handle exception  
  46.         }  
  47.     }  

 

你可能感兴趣的:(java)