码迷,mamicode.com
首页 > 其他好文 > 详细

jmap命令使用

时间:2015-06-03 09:58:53      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:java虚拟机   jvm   jdk性能监控工具   

概述

jmap是一个多功能的命令。它可以生成java程序的堆dump文件,也可以查看堆内对象实例的统计信息,查看ClassLoader的信息以及Finalizer队列。

使用示例

导出对象统计信息

下面的命令生成PID为2500的java成粗的对象的统计信息,并输出到out.txt文件中:

[qifuguang@winwill~]$ jmap -histo 2500 > out.txt
[qifuguang@winwill~]$
[qifuguang@winwill~]$
[qifuguang@winwill~]$
[qifuguang@winwill~]$
[qifuguang@winwill~]$

生成的文件如下:
技术分享
从文件中可以看到,统计信息显示了内存中实例的数量和合计。

导出程序堆快照

下面的命令导出PID为2500的java程序当前的堆快照:

[qifuguang@winwill~]$ jmap -dump:format=b,file=dump.bin 2500
Dumping heap to /home/qifuguang/dump.bin ...
Heap dump file created

该命令成功地将运用程序的当前的堆快照导出到了dump.bin文件,之后可以使用Visual VM,MAT等工具分析对快照文件。

查看Finalizer队列

下面的命令查看虚拟机Finalizer队列的信息:
技术分享
从图中可以看到,队列中堆积了大量的TestFinalizer$LY对象实例,还有其他一些对象。

查看ClassLoader信息

下面的命令显示了虚拟机当前的ClassLoader信息:
技术分享
从图中可以看到,当前虚拟机一共有3个ClassLoader,bootstrap加载了492个对象,对象总大小为943655byte,同时还显示了各个ClassLoader之间的父子关系。

jmap命令使用

标签:java虚拟机   jvm   jdk性能监控工具   

原文地址:http://blog.csdn.net/winwill2012/article/details/46337339

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!