zoukankan      html  css  js  c++  java
  • Java获取 JVM 运行信息

    import java.lang.management.ClassLoadingMXBean;
    import java.lang.management.ManagementFactory;
    import java.lang.management.MemoryMXBean;
    import java.lang.management.OperatingSystemMXBean;
    import java.lang.management.RuntimeMXBean;
    import java.lang.management.ThreadMXBean;
    import java.text.DecimalFormat;
    import java.text.DecimalFormatSymbols;
    import java.text.NumberFormat;
    import java.util.Locale;
    
    public class JVMResource{
    
        public static void main(String[] args) {
            new JVMResource().printSummary();
        }
    
        private NumberFormat fmtI = new DecimalFormat("###,###", new DecimalFormatSymbols(Locale.ENGLISH));
        private NumberFormat fmtD = new DecimalFormat("###,##0.000", new DecimalFormatSymbols(Locale.ENGLISH));
    
        private final int Kb = 1024;
    
        public void printSummary() {
            RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
            OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean();
            ThreadMXBean threads = ManagementFactory.getThreadMXBean();
            MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
            ClassLoadingMXBean cl = ManagementFactory.getClassLoadingMXBean();
            System.out.printf("jvmName:%s %s %s%n", runtime.getVmName(), "version", runtime.getVmVersion());
            System.out.printf("jvmJavaVer:%s%n", System.getProperty("java.version"));
            System.out.printf("jvmVendor:%s%n", runtime.getVmVendor());
            System.out.printf("jvmUptime:%s%n", toDuration(runtime.getUptime()));
            System.out.printf("threadsLive:%d%n", threads.getThreadCount());
            System.out.printf("threadsDaemon:%d%n", threads.getDaemonThreadCount());
            System.out.printf("threadsPeak:%d%n", threads.getPeakThreadCount());
            System.out.printf("threadsTotal:%d%n", threads.getTotalStartedThreadCount());
            System.out.printf("heapCurr:%d%n", mem.getHeapMemoryUsage().getUsed() / Kb);
            System.out.printf("heapMax:%d%n", mem.getHeapMemoryUsage().getMax() / Kb);
            System.out.printf("heapCommitted:%d%n", mem.getHeapMemoryUsage().getCommitted() / Kb);
            System.out.printf("osName:%s %s %s%n", os.getName(), "version", os.getVersion());
            System.out.printf("osArch:%s%n", os.getArch());
            System.out.printf("osCores:%s%n", os.getAvailableProcessors());
            System.out.printf("clsCurrLoaded:%s%n", cl.getLoadedClassCount());
            System.out.printf("clsLoaded:%s%n", cl.getTotalLoadedClassCount());
            System.out.printf("clsUnloaded:%s%n", cl.getUnloadedClassCount());
    
        }
    
        protected String printSizeInKb(double size) {
            return fmtI.format((long) (size / 1024)) + " kbytes";
        }
    
        protected String toDuration(double uptime) {
            uptime /= 1000;
            if (uptime < 60) {
                return fmtD.format(uptime) + " seconds";
            }
            uptime /= 60;
            if (uptime < 60) {
                long minutes = (long) uptime;
                String s = fmtI.format(minutes) + (minutes > 1 ? " minutes" : " minute");
                return s;
            }
            uptime /= 60;
            if (uptime < 24) {
                long hours = (long) uptime;
                long minutes = (long) ((uptime - hours) * 60);
                String s = fmtI.format(hours) + (hours > 1 ? " hours" : " hour");
                if (minutes != 0) {
                    s += " " + fmtI.format(minutes) + (minutes > 1 ? " minutes" : " minute");
                }
                return s;
            }
            uptime /= 24;
            long days = (long) uptime;
            long hours = (long) ((uptime - days) * 24);
            String s = fmtI.format(days) + (days > 1 ? " days" : " day");
            if (hours != 0) {
                s += " " + fmtI.format(hours) + (hours > 1 ? " hours" : " hour");
            }
            return s;
        }
    
    }

    相应运行结果如下:

    jvmName:Java HotSpot(TM) 64-Bit Server VM version 25.66-b17
    jvmJavaVer:1.8.0_66
    jvmVendor:Oracle Corporation
    jvmUptime:0.166 seconds
    threadsLive:4
    threadsDaemon:3
    threadsPeak:4
    threadsTotal:4
    heapCurr:2662
    heapMax:1864192
    heapCommitted:125952
    osName:Mac OS X version 10.11.1
    osArch:x86_64
    osCores:4
    clsCurrLoaded:585
    clsLoaded:585
    clsUnloaded:0
  • 相关阅读:
    常用的网站cms内容管理系统推荐
    PageAdmin网站内容管理系统出现403错误的解决方法
    使用PageAdmin网站内容管理系统做网站的好处
    网站建设步骤及常用建站系统分享
    企业网站建设如何选择建站公司
    如何采用PageAdmin自助建站系统来进行企业网站建设
    站群系统-站群软件系统推荐
    js计算之递归
    算法之插入排序
    javaScript设计模式之常用工厂模式
  • 原文地址:https://www.cnblogs.com/moonandstar08/p/5384922.html
Copyright © 2011-2022 走看看