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]); } } }