cpu 内存 信息获取 import org.hyperic.sigar.*;/** * Created by paul on 2017/9/8. * * Sigar.jar下载地址:http://sigar.hyperic.com * // sigar-amd64-winnt\X64\1.6.5.130 把dll文件存放在 系统配置的path路径下 * 虚拟机信息
import org.hyperic.sigar.*;
/**
* Created by paul on 2017/9/8.
*
* Sigar.jar下载地址:http://sigar.hyperic.com
* // sigar-amd64-winnt\X64\1.6.5.130 把dll文件存放在 系统配置的path路径下
* 虚拟机信息获取
*/
public class JvmKit {
public static String getJvmInfo(){
Runtime r = Runtime.getRuntime();
System.out.println("JVM可以使用的总内存 " + r.totalMemory());
System.out.println("JVM可以使用的剩余内存 "+ r.freeMemory());
System.out.println("JVM可以使用的处理器个数 "+ r.availableProcessors());
return "";
}
public static void getMemoryInfo() 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");
}
public static void getCpuPerc(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()));// 总的使用率
}
public static void getCpuInfo() throws SigarException {
Sigar sigar = new Sigar();
CpuInfo infos[] = sigar.getCpuInfoList();
CpuPerc cpuList[] = null;
cpuList = sigar.getCpuPercList();
for (int i = 0; i < infos.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());// 缓冲存储器数量
getCpuPerc(cpuList[i]);
}
}
}
