jmap命令使用

概述

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程序当前的堆快照:

[[email protected]~]$ 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之间的父子关系。

时间: 2024-10-25 08:44:46

jmap命令使用的相关文章

说说jmap命令

jmap命令 ps -ef| grep java root 1426 1359 0 10:30 pts/0 00:00:00 grep java root 7807 1 0 Apr28 ? 00:22:52 /usr/java/jdk1.8.0_45/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.0.30/conf/logging.properties -Djava.util.logging.manager=org.a

jmap命令详解

版权声明:本文为博主原创文章,未经博主允许不得转载. 1.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量). 使用方法 jmap -histo pid.如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象.jmap -dump:format=b,

jmap命令详解(转)

1.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量). 使用方法 jmap -histo pid.如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象.jmap -dump:format=b,file=outfile 3024可以将3024进程的

jmap命令详解 (转载)

1.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量). 使用方法 jmap -histo pid.如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象.jmap -dump:format=b,file=outfile 3024可以将3024进程的

jmap 命令

1.  jmap -heap pid 查看java 堆(heap)使用情况 using thread-local object allocation. Parallel GC with 4 thread(s)          //GC 方式          Heap Configuration:       //堆内存初始化配置 MinHeapFreeRatio=40     //对应jvm启动参数-XX:MinHeapFreeRatio设置JVM堆最小空闲比率(default 40) Ma

【JVM】【linux】linux上执行jmap命令查看JVM内存使用情况,报错:sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library name

运行命令: jmap -heap 6709 报错如下: Attaching to process ID 6709, please wait... sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "gHotSpotVMTypes" in any of the known library names (libjvm.so, libjvm_g.so, gamma_g) at sun.jvm.hotsp

jmap命令(Java Memory Map)的使用

jmap的使用能够參考: 官方文档 http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html 和这篇博客 http://blog.csdn.net/fenglibing/article/details/6411953 本文主要是介绍一下jmap经常使用的几个參数,作为自己的备忘录.注意假设是使用64位的JVM,使用jmap的时候,须要加-J-d64 1.打印每一个class的实例数量,内存占用,类全名信息.live子

jmap命令

一.jmap -heap PID using parallel threads in the new generation.  ##新生代采用的是并行线程处理方式 using thread-local object allocation. Concurrent Mark-Sweep GC   ##同步并行垃圾回收 Heap Configuration:  ##堆配置情况 MinHeapFreeRatio = 40 ##最小堆使用比例 MaxHeapFreeRatio = 70 ##最大堆可用比例

Java命令学习系列(三)——Jmap

Jmap jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件.远程调试服务器)的共享对象内存映射或堆内存细节.可以使用jmap生成Heap Dump. 这篇文章主要介绍Java的堆Dump以及jamp命令 什么是堆Dump 堆Dump是反应Java堆使用情况的内存镜像,其中主要包括系统信息.虚拟机属性.完整的线程Dump.所有类和对象的状态等. 一般,在内存不足.GC异常等情况下,我们就会怀疑有内存泄露.这个时候我们就可以制作堆Dump来查看具体情况.分析原因. 基础知识