java.lang.management 包 初探

可以参考这个文章 http://jiangnanguying.iteye.com/blog/539697

当然,java api里边这个包的说明更值得参考
/java/lang/management/package-summary.html

jdk  bin下的 jconsole 和jvisualVm 这两个工具所实现的功能基本上都能够从这个包的类和方法里找到。


获取jvm 的 heapDump方法:
对于HotSpot虚拟机来说,可以利用rt.jar 里边的HotSpotDiagnosticMXBean 来获取


bean = ManagementFactory.newPlatformMXBeanProxy(server,
             "com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class);
			
			//注意此处的参数是 在目标虚拟机上的操作系统路径 ,而不是这个程序执行的操作系统的路径 特别是在取服务器上的时候,更要特别注意,同时也要注意权限等问题
			bean.dumpHeap("a.hprof", true);




获取 ThreadDump方法:

ThreadMXBean threadBean = ManagementFactory.newPlatformMXBeanProxy(
					mbs, ManagementFactory.THREAD_MXBEAN_NAME,
					ThreadMXBean.class);
			// ThreadMXBean bean =ManagementFactory.getThreadMXBean();
			for (ThreadInfo info : threadBean.dumpAllThreads(true, true))
//然后...你懂的


获取GClog

在程序的启动参数中 配置

  -verbose:gc   -Xloggc:gc.log  当然 gc.log只是个文件名 你可以加上路径等等 呵呵。


另外发现

CodeCacheManager
java.lang:type=MemoryManager,name=CodeCacheManager
CodeCacheManager managed Code Cache
PS Scavenge
java.lang:type=GarbageCollector,name=PS Scavenge
PS Scavenge managed PS Eden Space
PS Scavenge managed PS Survivor Space
PS MarkSweep
java.lang:type=GarbageCollector,name=PS MarkSweep
PS MarkSweep managed PS Eden Space
PS MarkSweep managed PS Survivor Space
PS MarkSweep managed PS Old Gen
PS MarkSweep managed PS Perm Gen

居然PS MarkSweep 管理了 四个区域 呵呵 三个堆相关的 一个永久代 居然也是它负责..

附件是例子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值