jmap 使用方法-可产生heap dump

来源:互联网 发布:java 内存流 生成pdf 编辑:程序博客网 时间:2024/05/17 04:48

英文地址:
http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html

jmap可以打印给定的jvm进程或远程debug服务的共享对象的内存映射图或者详细的heap内存信息. 假如给定的jvm是运行在64位模式,那么你需要指定-J-d64参数,例如: jmap -J-d64 -heap pid
jmap在windows平台上,只能使用的形式如下:
jmap -dump: pid

jmap -histo[:live] pid

jmap的命令如下:
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP

parameters
options

打印jvm中加载的每个共享对象,起始地址,映射的内存大小,共享对象文件的全路径.
-dump:[live,]format=b,file=
输出jvm的heap内容到文件,并使用hprof二进制形式. live子选项如果指定,那么只输出活的对象到文件.
-finalizerinfo
打印正等待回收的对象的信息
-histo[:live]
打印每个class的实例数量,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 假如live子参数加上后,只统计活的对象数量.
-permstat
打印classload和jvm heap持久层的信息. 包括每个classloader的名字,活跃性,地址,父classloader和加载的class数目. 另外,内部String的数量和占用内存数也会打印出来.
-F
强制.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效.
-h | -help
打印帮助信息
-J
传递参数给jmap启动的jvm.

pid
需要被打印配置信息的java进程id,可以用jps查询.

executable
Java executable from which the core dump was produced.
(可能是产生core dump的java可执行程序)

core
将被打印信息的core dump文件

remote-hostname-or-IP
远程debug服务的主机名或ip

server-id
唯一id,假如一台主机上多个远程debug服务

原创粉丝点击