jdk的jmap指令使用介绍
1.基本介绍
- jmap 主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节.jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小
- 可以将VM 中的heap(堆)以二进制格式输出到文本中.
2.命令格式和参数说明
- 命令格式:
-
jmap [ option ] pid 打印指定进程(pid)的内存快照
-
jmap [ option ] executable(可执行程序) core(dump文件)
-
jmap [option] serverId@ip 远程主机上服务号为(serverId)的debug服务的内存快照(可能由多个debug服务)
- 参数说明
-
-heap:打印jvm heap的情况(heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况).
例如: jmap -heap 12660(pid)  /jmap -histo:live 12660

3.使用场景
- jmap -histo pid多次使用对比分析可以看到对象的回收状况
- jmap -dump:format=b,file=outfile pid可以将指定进程的内存heap输出到outfile文件里,再配合MAT(内存分析工具)分析内存状况
4.参考
https://blog.youkuaiyun.com/fenglibing/article/details/6411953
https://blog.youkuaiyun.com/gtuu0123/article/details/6039964
https://www.cnblogs.com/kongzhongqijing/articles/3621163.html