软件编程
位置:首页>> 软件编程>> java编程>> 在java代码中获取JVM参数的方法

在java代码中获取JVM参数的方法

作者:jingxian  发布时间:2022-08-15 01:05:43 

标签:java,jvm,参数

实例如下:


MemoryMXBean memorymbean = ManagementFactory.getMemoryMXBean();  
 MemoryUsage usage = memorymbean.getHeapMemoryUsage();  
 System.out.println("INIT HEAP: " + usage.getInit());  
 System.out.println("MAX HEAP: " + usage.getMax());  
 System.out.println("USE HEAP: " + usage.getUsed());  
 System.out.println("\nFull Information:");  
 System.out.println("Heap Memory Usage: "  
 + memorymbean.getHeapMemoryUsage());  
 System.out.println("Non-Heap Memory Usage: "  
 + memorymbean.getNonHeapMemoryUsage());  

List<String> inputArguments = ManagementFactory.getRuntimeMXBean().getInputArguments();  
 System.out.println("===================java options=============== ");
 System.out.println(inputArguments);

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("=======================OperatingSystemMXBean============================ ");
 OperatingSystemMXBean osm = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
//  System.out.println(osm.getFreeSwapSpaceSize()/1024);
//  System.out.println(osm.getFreePhysicalMemorySize()/1024);
//  System.out.println(osm.getTotalPhysicalMemorySize()/1024);

//获取操作系统相关信息
 System.out.println("osm.getArch() "+osm.getArch());
 System.out.println("osm.getAvailableProcessors() "+osm.getAvailableProcessors());
 //System.out.println("osm.getCommittedVirtualMemorySize() "+osm.getCommittedVirtualMemorySize());
 System.out.println("osm.getName() "+osm.getName());
 //System.out.println("osm.getProcessCpuTime() "+osm.getProcessCpuTime());
 System.out.println("osm.getVersion() "+osm.getVersion());
 //获取整个虚拟机内存使用情况
 System.out.println("=======================MemoryMXBean============================ ");
 MemoryMXBean mm=(MemoryMXBean)ManagementFactory.getMemoryMXBean();
 System.out.println("getHeapMemoryUsage "+mm.getHeapMemoryUsage());
 System.out.println("getNonHeapMemoryUsage "+mm.getNonHeapMemoryUsage());
 //获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况
 System.out.println("=======================ThreadMXBean============================ ");
 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============================ ");
 CompilationMXBean gm=(CompilationMXBean)ManagementFactory.getCompilationMXBean();
 System.out.println("getName "+gm.getName());
 System.out.println("getTotalCompilationTime "+gm.getTotalCompilationTime());

//获取多个内存池的使用情况
 System.out.println("=======================MemoryPoolMXBean============================ ");
 List<MemoryPoolMXBean> mpmList=ManagementFactory.getMemoryPoolMXBeans();
 for(MemoryPoolMXBean mpm:mpmList){
   System.out.println("getUsage "+mpm.getUsage());
   System.out.println("getMemoryManagerNames "+mpm.getMemoryManagerNames().toString());
 }
 //获取GC的次数以及花费时间之类的信息
 System.out.println("=======================MemoryPoolMXBean============================ ");
 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============================ ");
 RuntimeMXBean rmb=(RuntimeMXBean)ManagementFactory.getRuntimeMXBean();
 System.out.println("getClassPath "+rmb.getClassPath());
 System.out.println("getLibraryPath "+rmb.getLibraryPath());
 System.out.println("getVmVersion "+rmb.getVmVersion());
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com