JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。
jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和老年代的详细信息,如当前使用率、当前使用的是哪种收集器等。
option:选项参数,不可同时使用多个选项参数。
pid:Java进程id。
executable:产生核心dump的Java可执行文件。
core:需要打印配置信息的核心文件。
remote-hostname-or-ip:远程调试的主机名或ip。
server-id:可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标示服务器。
heap:显示Java堆详细信息;
histo:线下堆中对象的统计信息;
clstats:Java堆中内存的类加载器的统计信息;
finalizerinfo:显示在F-Queue队列等待Finlizer线程执行finalizer方法的对象;
dump:生成堆转储快照;
F:当-dump没有响应时,强制生成dump快照;
所有测试基于如下JDK版本:
dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名。
dump.hprof这个文件可以通过eclipse的打开:
打印heap的概要信息,GC使用的算法,heap的配置和使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况。
打印等待回收的对象信息。
Number of objects pending for finalization:0 说明当前F-Queue队列中并没有等待Finalizer线程执行finalizer方法的对象。
打印堆的对象统计,包括对象数、内存大小等。jmap -histo:live这个命令执行,JVM会先触发gc,然后再统计信息。
第一列:编号id
第二列:实例个数
第三列:所有实例大小
第四列:类名
打印Java类加载器的智能统计信息,对于每个类加载器而言,对于每个类加载器而言,它的名称,活跃度,地址,父类加载器,它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。
强制模式。如果指定的pid没有响应,请使用jmap -dump或jmap -histo选项。此模式下,不支持live子选项。
比如:
转载于:https://www.cnblogs.com/lujiango/p/9002270.html
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101674.html原文链接:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/8975.html