jmap可用作java内存的分析工具,主要命令格式如下(以下pid指的是进程id):
1、jmap 【参数】 pid
参数列表
heap : 显示Java堆的相关信息
histo : 显示堆中对象的统计信息
permstat :
Java堆内存的永久保存区域的类加载器的统计信息
finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
dump : 生成堆转储快照
F : 当-dump没有响应时,强制生成dump快照
jmap -heap 1654 可显示java内存信息、垃圾收集器的信息
jmap -dump:live,format=b,file=dump.hprof 49105
jmap -histo:live 24971 |more
jmap -permstat 49105
下面实例演示
1、 jmap -heap 1654 可显示java内存信息、垃圾收集器的信息
2、生成堆文件
命令 jmap -dump:live,format=b,file=dump.hprof 49105 -dump生成命令 live:只选择活着的对象 format:格式 file:文件保存路径
3、查看待回收的信息
命令 jmap -finalizerinfo 49105 Number of objects pending for finalization: 0 待回收的数量为0
4、查看堆中对象的信息 jmap -histo:live 24971 |more
jmap -histo:live 24971 | grep grep可以过滤想要看的信息
如图 instances:实例数量 bytes:大小 classname:类名
5、打印类加载器的信息
jmap -permstat 49105