您的位置:首页 > 编程语言 > Java开发

jmap 使用方法-可产生heap dump

2011-02-23 11:07 1046 查看
英文地址:
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服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息