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<FileSystemInfoBean> space= FileSystemInfo.getFileSystemInfo();
for(int i=0;i<space.size();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
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值