jmap(Memory Map For Java)

功能
 
jmap(Memory Map For Java)命令用于生成堆转储快照(一般称为heaphump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照还有一些比较“暴力”的手段:使用-XX:HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件;通过-XX:HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退出信号“恐吓”一下虚拟机,也能拿到dump文件。
 
jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列,Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。
 
命令
 
jmap [option] vmid
 
技术分享
 技术分享
说明
 
-dump:生成Java堆转储快照。格式为:-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象。
 
-finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效。
 
-heap:显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效。
 
-histo:显示堆中对象统计信息,包括类、实例数量和合计容量。
 
-permstat:以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效。
 
-F:当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。只在Linux/Solaris平台下有效。
 
示例
 
jmap -dump:format=b,file=eclipse.bin 3500

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。