`
ztianlong
  • 浏览: 66653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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 管理了 四个区域 呵呵 三个堆相关的 一个永久代 居然也是它负责..

附件是例子
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics