java代码监控内存 java监控gc( 四 )


System.out.println("默认的临时文件路径:" + props.getProperty("java.io.tmpdir"));
System.out.println("一个或多个扩展目录的路径:" + props.getProperty("java.ext.dirs"));
System.out.println("操作系统的名称:" + props.getProperty("os.name"));
System.out.println("操作系统的构架:" + props.getProperty("os.arch"));
System.out.println("操作系统的版本:" + props.getProperty("os.version"));
System.out.println("文件分隔符:" + props.getProperty("file.separator"));
System.out.println("路径分隔符:" + props.getProperty("path.separator"));
System.out.println("行分隔符:" + props.getProperty("line.separator"));
System.out.println("用户的账户名称:" + props.getProperty("user.name"));
System.out.println("用户的主目录: " + props.getProperty("user.home"));
System.out.println("用户的当前工作目录:" + props.getProperty("user.dir"));
}
private static void memory() throws SigarException {
Sigar sigar = new Sigar();
Mem mem = sigar.getMem();
float total = mem.getTotal();
float used = mem.getUsed();
// 内存总量
System.out.println("内存总量:" + mem.getTotal() / 1024L/1024L + "M av");
// 当前内存使用量
System.out.println("当前内存使用量:" + mem.getUsed() / 1024L/1024L + "M used");
// 当前内存剩余量
System.out.println("当前内存剩余量:" + mem.getFree() / 1024L/1024L + "M free");
// 当前内存使用率
System.out.println("内存使用率:" +used/total*100+"%");
Swap swap = sigar.getSwap();
// 交换区总量
System.out.println("交换区总量:" + swap.getTotal() / 1024L/1024L + "M av");
// 当前交换区使用量
System.out.println("当前交换区使用量:" + swap.getUsed() / 1024L/1024L + "M used");
// 当前交换区剩余量
System.out.println("当前交换区剩余量:" + swap.getFree() / 1024L/1024L + "M free");
}
private static void cpu() throws SigarException {
Sigar sigar = new Sigar();
CpuInfo infos[] = sigar.getCpuInfoList();
CpuPerc cpuList[] = null;
cpuList = sigar.getCpuPercList();
for (int i = 0; iinfos.length; i++) {// 不管是单块CPU还是多CPU都适用
CpuInfo info = infos[i];
System.out.println("第" + (i + 1) + "块CPU信息");
System.out.println("CPU的总量MHz:" + info.getMhz());// CPU的总量MHz
System.out.println("CPU生产商: " + info.getVendor());// 获得CPU的卖主,如:Intel
System.out.println("CPU类别:" + info.getModel());// 获得CPU的类别,如:Celeron
System.out.println("CPU缓存数量:" + info.getCacheSize());// 缓冲存储器数量
printCpuPerc(cpuList[i]);
}
}
private static void printCpuPerc(CpuPerc cpu) {
System.out.println("CPU用户使用率:" + CpuPerc.format(cpu.getUser()));// 用户使用率
System.out.println("CPU系统使用率:" + CpuPerc.format(cpu.getSys()));// 系统使用率
System.out.println("CPU当前等待率:" + CpuPerc.format(cpu.getWait()));// 当前等待率
System.out.println("CPU当前错误率:" + CpuPerc.format(cpu.getNice()));//
System.out.println("CPU当前空闲率:" + CpuPerc.format(cpu.getIdle()));// 当前空闲率
System.out.println("CPU总的使用率:" + CpuPerc.format(cpu.getCombined()));// 总的使用率
}
private static void os() {
OperatingSystem OS = OperatingSystem.getInstance();
// 操作系统内核类型如: 386、486、586等x86
System.out.println("操作系统:" + OS.getArch());
System.out.println("操作系统CpuEndian():" + OS.getCpuEndian());//
System.out.println("操作系统DataModel():" + OS.getDataModel());//
// 系统描述
System.out.println("操作系统的描述:" + OS.getDescription());
// 操作系统类型
// System.out.println("OS.getName():" + OS.getName());

推荐阅读