Jmap Command
打印进程、核心文件或远程调试服务器的共享对象内存映射或堆内存详细信息。这个命令是实验性,不支持的。
概要
jmap [options] pid
jmap [options] executable core
jmap [options] [pid] server-id@remote-hostname-or-IP
- options :命令行选项,见Options。
- pid : 要打印的内存映射的进程ID,这个进程必须是Java进程。获取Java进程信息可以使用
Jps命令。 - executable : 从核心转储产生的Java可执行文件.
- core : 要打印内存映射的核心文件。
- remote-hostname-or-IP : 远程调试服务主机或者IP地址
- server-id : 在同一个主机上运行多个调试服务时用来识别的唯一的标识
描述
Jmap命令打印进程、核心文件或远程调试服务器的共享对象内存映射或堆内存详细信息。如果指定的进程运行在64位JVM上,可能需要指定-J-d64选项,例如: jmap -J-d64 -heap pid。
Note : 这个工具不支持,可能在以后JDK版本中不再支持。在不存在dbgeng.dll文件的Windows系统中,必须安装Windows的调试工具以使这些工具工作。
选项
-
<no option>当没有指定选项时,
jmap命令打印共享对象映射。对目标JVM上的每个加载的共享对象,地址,映射大小,和共享对象文件的全路径都会被打印。这个行为和Oracle Solaris的pmap工具类似。 -
-dump:[live,] format=b,file=filename转储Java堆到
filename文件,以二进制hprof格式。live是可选的,当指定时,只有堆中活跃的对象才会被转储。为了浏览堆转储文件,可以使用jhat命令来阅读生成的文件。 -
-finalizerinfo打印正在等待定稿的对象的信息。
-
-heap打印垃圾回收使用的摘要信息,堆配置和生成堆使用情况。此外,内部字符的带下和数量也打印了。
-
-histo[:live]打印堆的直方图。每个类的对象数量,内存大小,全限定类名都会打印。JVM内部类名用星号(*)前缀打印。 如果指定了
live子选项,则只计算活动对象。 -
-clstats打印类加载器的Java堆统计。 对于每个类加载程序,打印其名称、活动程度、地址、父类加载程序以及加载的类的数量和大小。
-
-F强制。当
jmap -dump或者jmap -histo命令没有反应时,使用这个选项。这种模式不支持live子选项。 -
-h打印帮助信息
-
-help打印帮助信息
-
-Jflag将标志传递给运行jmap命令的Java虚拟机。
参考
- [官方文档](docs.oracle.com/javase/8/do…