zoukankan      html  css  js  c++  java
  • 获取本地的jvm信息,进行图形化展示

    package test1;
    
    import java.lang.management.CompilationMXBean;
    import java.lang.management.GarbageCollectorMXBean;
    import java.lang.management.ManagementFactory;
    import java.lang.management.MemoryMXBean;
    import java.lang.management.MemoryPoolMXBean;
    import java.lang.management.MemoryUsage;
    import java.lang.management.OperatingSystemMXBean;
    import java.lang.management.RuntimeMXBean;
    import java.lang.management.ThreadMXBean;
    import java.util.List;
     
    
    public class Test11 {
        /**
         * @param args
         */
        public static void main(String[] args) {
            //==========================Memory=========================
            System.out.println("==========================Memory=========================");
            MemoryMXBean memoryMBean = ManagementFactory.getMemoryMXBean();   
            MemoryUsage usage = memoryMBean.getHeapMemoryUsage();   
            System.out.println("初始化 Heap: " + (usage.getInit()/1024/1024) + "mb");   
            System.out.println("最大Heap: " + (usage.getMax()/1024/1024) + "mb");   
            System.out.println("已经使用Heap: " + (usage.getUsed()/1024/1024) + "mb");   
            System.out.println("Heap Memory Usage: " + memoryMBean.getHeapMemoryUsage());   
            System.out.println("Non-Heap Memory Usage: " + memoryMBean.getNonHeapMemoryUsage());   
            //==========================Runtime=========================
            System.out.println("==========================Runtime=========================");
            RuntimeMXBean runtimeMBean = ManagementFactory.getRuntimeMXBean();
            System.out.println("JVM name : " + runtimeMBean.getVmName());
            System.out.println("lib path : " + runtimeMBean.getLibraryPath());
            System.out.println("class path : " + runtimeMBean.getClassPath());
            System.out.println("getVmVersion() " + runtimeMBean.getVmVersion());  
            //java options
            List<String> argList = runtimeMBean.getInputArguments();
            for(String arg : argList){
                System.out.println("arg : " + arg);
            }
            //==========================OperatingSystem=========================
            System.out.println("==========================OperatingSystem=========================");
            OperatingSystemMXBean osMBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();  
            //获取操作系统相关信息  
            System.out.println("getName() "+ osMBean.getName()); 
            System.out.println("getVersion() " + osMBean.getVersion()); 
            System.out.println("getArch() "+osMBean.getArch());  
            System.out.println("getAvailableProcessors() " + osMBean.getAvailableProcessors());  
            //==========================Thread=========================
            System.out.println("==========================Thread=========================");
            //获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况  
            ThreadMXBean threadMBean=(ThreadMXBean)ManagementFactory.getThreadMXBean();  
            System.out.println("getThreadCount() " + threadMBean.getThreadCount());  
            System.out.println("getPeakThreadCount() " + threadMBean.getPeakThreadCount());  
            System.out.println("getCurrentThreadCpuTime() " + threadMBean.getCurrentThreadCpuTime());  
            System.out.println("getDaemonThreadCount() " + threadMBean.getDaemonThreadCount());  
            System.out.println("getCurrentThreadUserTime() "+ threadMBean.getCurrentThreadUserTime());  
            //==========================Compilation=========================
            System.out.println("==========================Compilation=========================");
            CompilationMXBean compilMBean=(CompilationMXBean)ManagementFactory.getCompilationMXBean();   
            System.out.println("getName() " + compilMBean.getName());  
            System.out.println("getTotalCompilationTime() " + compilMBean.getTotalCompilationTime());  
            //==========================MemoryPool=========================
            System.out.println("==========================MemoryPool=========================");
            //获取多个内存池的使用情况  
            List<MemoryPoolMXBean> mpMBeanList= ManagementFactory.getMemoryPoolMXBeans();  
            for(MemoryPoolMXBean mpMBean : mpMBeanList){  
                System.out.println("getUsage() " + mpMBean.getUsage());  
                System.out.println("getMemoryManagerNames() "+ mpMBean.getMemoryManagerNames().toString());  
            } 
            //==========================GarbageCollector=========================
            System.out.println("==========================GarbageCollector=========================");
            //获取GC的次数以及花费时间之类的信息  
            List<GarbageCollectorMXBean> gcMBeanList=ManagementFactory.getGarbageCollectorMXBeans();  
            for(GarbageCollectorMXBean gcMBean : gcMBeanList){  
                System.out.println("getName() " + gcMBean.getName());  
                System.out.println("getMemoryPoolNames() "+ gcMBean.getMemoryPoolNames());  
            } 
            //==========================Other=========================
            System.out.println("==========================Other=========================");
            //Java 虚拟机中的内存总量,以字节为单位  
            int total = (int)Runtime.getRuntime().totalMemory()/1024/1024;
            System.out.println("内存总量 :" + total + "mb");  
            int free = (int)Runtime.getRuntime().freeMemory()/1024/1024; 
            System.out.println("空闲内存量 : " + free + "mb");  
            int max = (int) (Runtime.getRuntime().maxMemory() /1024 / 1024); 
            System.out.println("最大内存量 : "  + max + "mb");  
    
        }
    }
    当一个人在成长过程中,慢慢的享受学习,那么这个人就在成长,在往自己目标的方向奔跑.
  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/zique/p/7678284.html
Copyright © 2011-2022 走看看