java使用java.lang.management监视和管理 Java 虚拟机
ClassLoadingMXBean | 用于 Java 虚拟机的类加载系统的管理接口。 |
CompilationMXBean | 用于 Java 虚拟机的编译系统的管理接口。 |
GarbageCollectorMXBean | 用于 Java 虚拟机的垃圾回收的管理接口。 |
MemoryManagerMXBean | 内存管理器的管理接口。 |
MemoryMXBean | Java 虚拟机的内存系统的管理接口。 |
MemoryPoolMXBean | 内存池的管理接口。 |
OperatingSystemMXBean | 用于操作系统的管理接口,Java 虚拟机在此操作系统上运行。 |
RuntimeMXBean | Java 虚拟机的运行时系统的管理接口。 |
ThreadMXBean |
Java 虚拟机线程系统的管理接口。 |
- import java.lang.management.ClassLoadingMXBean;
- import java.lang.management.CompilationMXBean;
- import java.lang.management.GarbageCollectorMXBean;
- import java.lang.management.ManagementFactory;
- import java.lang.management.MemoryMXBean;
- import java.lang.management.MemoryManagerMXBean;
- 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;
- import javax.management.MBeanServerConnection;
- public class MBeanDemo {
- public static void main(String[] args) {
- showJvmInfo();
- showMemoryInfo();
- showSystem();
- showClassLoading();
- showCompilation();
- showThread();
- showGarbageCollector();
- showMemoryManager();
- showMemoryPool();
- }
- /**
- * Java 虚拟机的运行时系统
- */
- public static void showJvmInfo() {
- RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
- String vendor = mxbean.getVmVendor();
- System.out.println("jvm name:" + mxbean.getVmName());
- System.out.println("jvm version:" + mxbean.getVmVersion());
- System.out.println("jvm bootClassPath:" + mxbean.getBootClassPath());
- System.out.println("jvm start time:" + mxbean.getStartTime());
- }
- /**
- * Java 虚拟机的内存系统
- */
- public static void showMemoryInfo() {
- MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
- MemoryUsage heap = mem.getHeapMemoryUsage();
- System.out.println("Heap committed:" + heap.getCommitted() + " init:" + heap.getInit() + " max:"
- + heap.getMax() + " used:" + heap.getUsed());
- }
- /**
- * Java 虚拟机在其上运行的操作系统
- */
- public static void showSystem() {
- OperatingSystemMXBean op = ManagementFactory.getOperatingSystemMXBean();
- System.out.println("Architecture: " + op.getArch());
- System.out.println("Processors: " + op.getAvailableProcessors());
- System.out.println("System name: " + op.getName());
- System.out.println("System version: " + op.getVersion());
- System.out.println("Last minute load: " + op.getSystemLoadAverage());
- }
- /**
- * Java 虚拟机的类加载系统
- */
- public static void showClassLoading(){
- ClassLoadingMXBean cl = ManagementFactory.getClassLoadingMXBean();
- System.out.println("TotalLoadedClassCount: " + cl.getTotalLoadedClassCount());
- System.out.println("LoadedClassCount" + cl.getLoadedClassCount());
- System.out.println("UnloadedClassCount:" + cl.getUnloadedClassCount());
- }
- /**
- * Java 虚拟机的编译系统
- */
- public static void showCompilation(){
- CompilationMXBean com = ManagementFactory.getCompilationMXBean();
- System.out.println("TotalCompilationTime:" + com.getTotalCompilationTime());
- System.out.println("name:" + com.getName());
- }
- /**
- * Java 虚拟机的线程系统
- */
- public static void showThread(){
- ThreadMXBean thread = ManagementFactory.getThreadMXBean();
- System.out.println("ThreadCount" + thread.getThreadCount());
- System.out.println("AllThreadIds:" + thread.getAllThreadIds());
- System.out.println("CurrentThreadUserTime" + thread.getCurrentThreadUserTime());
- //......还有其他很多信息
- }
- /**
- * Java 虚拟机中的垃圾回收器。
- */
- public static void showGarbageCollector(){
- List<GarbageCollectorMXBean> gc = ManagementFactory.getGarbageCollectorMXBeans();
- for(GarbageCollectorMXBean GarbageCollectorMXBean : gc){
- System.out.println("name:" + GarbageCollectorMXBean.getName());
- System.out.println("CollectionCount:" + GarbageCollectorMXBean.getCollectionCount());
- System.out.println("CollectionTime" + GarbageCollectorMXBean.getCollectionTime());
- }
- }
- /**
- * Java 虚拟机中的内存管理器
- */
- public static void showMemoryManager(){
- List<MemoryManagerMXBean> mm = ManagementFactory.getMemoryManagerMXBeans();
- for(MemoryManagerMXBean eachmm: mm){
- System.out.println("name:" + eachmm.getName());
- System.out.println("MemoryPoolNames:" + eachmm.getMemoryPoolNames().toString());
- }
- }
- /**
- * Java 虚拟机中的内存池
- */
- public static void showMemoryPool(){
- List<MemoryPoolMXBean> mps = ManagementFactory.getMemoryPoolMXBeans();
- for(MemoryPoolMXBean mp : mps){
- System.out.println("name:" + mp.getName());
- System.out.println("CollectionUsage:" + mp.getCollectionUsage());
- System.out.println("type:" + mp.getType());
- }
- }
- /**
- * 访问 MXBean 的方法的三种方法
- */
- public static void visitMBean(){
- //第一种直接调用同一 Java 虚拟机内的 MXBean 中的方法。
- RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
- String vendor1 = mxbean.getVmVendor();
- System.out.println("vendor1:" + vendor1);
- //第二种通过一个连接到正在运行的虚拟机的平台 MBeanServer 的 MBeanServerConnection。
- MBeanServerConnection mbs = null;
- // Connect to a running JVM (or itself) and get MBeanServerConnection
- // that has the JVM MXBeans registered in it
- /*
- try {
- // Assuming the RuntimeMXBean has been registered in mbs
- ObjectName oname = new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
- String vendor2 = (String) mbs.getAttribute(oname, "VmVendor");
- System.out.println("vendor2:" + vendor2);
- } catch (Exception e) {
- e.printStackTrace();
- }
- */
- //第三种使用 MXBean 代理
- // MBeanServerConnection mbs3 = null;
- // RuntimeMXBean proxy;
- // try {
- // proxy = ManagementFactory.newPlatformMXBeanProxy(mbs3,ManagementFactory.RUNTIME_MXBEAN_NAME,
- // RuntimeMXBean.class);
- // String vendor = proxy.getVmVendor();
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
- }
- }
来源于:http://blog.csdn.net/zhongweijian/article/details/7619383/
java使用java.lang.management监视和管理 Java 虚拟机的更多相关文章
- 【转】java使用java.lang.management监视和管理 Java 虚拟机
原文地址:https://blog.csdn.net/zhongweijian/article/details/7619383 软件包 java.lang.management 提供管理接口,用于监视 ...
- Java 监控基础 - 使用 JMX 监控和管理 Java 程序
点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码网站 已经收录,有很多知识点和系列文章. 此篇文 ...
- Java Business Process Management(业务流程管理) 初识环境搭建
一.简介 (一)什么是jbpm JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易 ...
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
@Repository public class SysUerCDAO { @Autowired private Hibernate_Credit hibernate_credit; /** * 根据 ...
- 远程监视jboss应用java内存的配置
前言 因为最近一个项目部署在客户那边运行一个月左右就会出现java内存溢出的问题,为了时时监控java内存的情况需要,需要远程查看服务器上java内存的一些情况.在公司模拟部署了远程监视linux下项 ...
- 远程监视jboss应用java内存的配置(实测) .
前言 因为最近一个项目部署在客户那边运行一个月左右就会出现java内存溢出的问题,为了时时监控java内存的情况需要,需要远程查看服务器上java内存的一些情况.在公司模拟部署了远程监视linux下项 ...
- Java 类加载机制 ClassLoader Class.forName 内存管理 垃圾回收GC
[转载] :http://my.oschina.net/rouchongzi/blog/171046 Java之类加载机制 类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指 ...
- Java中的垃圾回收机制&内存管理&内存泄漏
1. Java在创建对象时,会自动分配内存,并当该对象引用不存在的时候,释放这块内存. 为什么呢? 因为Java中使用被称为垃圾收集器的技术来监视Java程序的运行,当对象不再使用时,就自动释放对象所 ...
- java面试复习重点:类的管理及常用工具,教你抓住面试的重点!
java复习: 类的管理及常用工具类 包 写在程序文件的第一行 一个Java 源文件中只能声明一个包, 且声明语句只能作为源文件的第一条指令 导入类能导入非public类,但是不能用因为在其他包缺省的 ...
随机推荐
- Error while executing: am start -n
单纯clean project是不行的,选择File-Invalidate Caches/Restart,清除缓存,重启AS Android NDK 是在SDK前面又加上了"原生" ...
- [快速幂][NOIP2012]转圈游戏
转圈游戏 题目描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置, ...
- predict predict_proba区别的小例子
predict_proba返回的是一个n行k列的数组,第i行第j列上的数值是模型预测第i个预测样本的标签为j的概率.所以每一行的和应该等于1. 举个例子 >>> from sklea ...
- [JAVA]JAVA章3 如何获取及查看DUMP文件
一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...
- 教你轻松快速学会用Calibre TXT转MOBI
教你轻松快速学会TXT转为有目录的MOBI###授人以渔,lllll5500制作### 需使用软件按先后顺序如下:一.排版助手 官网http://www.gidot.net/typesetter/二. ...
- 学习blinker
from blinker import signal do_sth = signal('do_sth') #创建信号 def process(f, a, b, **kwargs): f(a, b, * ...
- Unix时间戳转日期时间格式,C#、Java、Python各语言实现!
之前有个Q上好友没事问我,怎么自己写Unix时间戳转日期时间?于是我就顺手写了个C#版本给他!最近想起来,就萌发多写几个语言的版本分享,权当练习思路外加熟悉另外两种语言. 先说转换步骤 先处理年份,从 ...
- 论如何优雅地拿下PHPCMS
作者:J0o1ey 原文来自:论如何优雅地拿下PHPCMS 一.PHPCM PHP是国内领先的网站内容管理系统,同时也是一个开源的PHP开发框架,采用PHP5+MYSQL进行开发,拥有非常 ...
- web API简介(一):API,Ajax和Fetch
概述 今天逛MDN,无意中看到了web API简介,觉得挺有意思的,就认真读了一下. 下面是我在读的时候对感兴趣的东西的总结,供自己开发时参考,相信对其他人也有用. 什么是API API (Appli ...
- Archive required for library “xxx” cannot be read or is not a valid zip file报错解决
在项目中导入别人的maven项目时报错:Archive required for library “xxx” cannot be read or is not a valid zip file 网上查 ...