使用的 management的包 性能比较强大
System.out.println("=======================通过java来获取相关系统状态============================ ");
int i = (int) Runtime.getRuntime().totalMemory() / 1024;//Java 虚拟机中的内存总量,以字节为单位
System.out.println("总的内存量 i is " + i);
int j = (int) Runtime.getRuntime().freeMemory() / 1024;//Java 虚拟机中的空闲内存量
System.out.println("空闲内存量 j is " + j);
System.out.println("最大内存量 is " + Runtime.getRuntime().maxMemory() / 1024);
System.out.println("=======================获取整个虚拟机内存使用情况============================ ");
MemoryMXBean mm = (MemoryMXBean) ManagementFactory.getMemoryMXBean();
System.out.println("getHeapMemoryUsage " + mm.getHeapMemoryUsage());
System.out.println("getNonHeapMemoryUsage " + mm.getNonHeapMemoryUsage());
System.out.println("=======================获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况============================ ");
ThreadMXBean tm = (ThreadMXBean) ManagementFactory.getThreadMXBean();
System.out.println("getThreadCount " + tm.getThreadCount());
System.out.println("getPeakThreadCount " + tm.getPeakThreadCount());
System.out.println("getCurrentThreadCpuTime " + tm.getCurrentThreadCpuTime());
System.out.println("getDaemonThreadCount " + tm.getDaemonThreadCount());
System.out.println("getCurrentThreadUserTime " + tm.getCurrentThreadUserTime());
System.out.println("=======================当前编译器情况============================ ");
CompilationMXBean gm = (CompilationMXBean) ManagementFactory.getCompilationMXBean();
System.out.println("getName " + gm.getName());
System.out.println("getTotalCompilationTime " + gm.getTotalCompilationTime());
System.out.println("=======================获取多个内存池的使用情况============================ ");
List<MemoryPoolMXBean> mpmList = ManagementFactory.getMemoryPoolMXBeans();
for (MemoryPoolMXBean mpm : mpmList) {
System.out.println("getUsage " + mpm.getUsage());
System.out.println("getMemoryManagerNames " + mpm.getMemoryManagerNames().toString());
}
System.out.println("=======================获取GC的次数以及花费时间之类的信息============================ ");
List<GarbageCollectorMXBean> gcmList = ManagementFactory.getGarbageCollectorMXBeans();
for (GarbageCollectorMXBean gcm : gcmList) {
System.out.println("getName " + gcm.getName());
System.out.println("getMemoryPoolNames " + gcm.getMemoryPoolNames());
}
System.out.println("=======================获取运行时信息============================ ");
RuntimeMXBean rmb = (RuntimeMXBean) ManagementFactory.getRuntimeMXBean();
System.out.println("getClassPath " + rmb.getClassPath());
System.out.println("getLibraryPath " + rmb.getLibraryPath());
System.out.println("getVmVersion " + rmb.getVmVersion());