【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

1.首先,java程序启动在linux,怎么生成dump文件?

  1》第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令

ps -ef|grep java

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

  或者如果是docker启动的  springboot服务,也可以使用本命令:

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

  2》在任意位置,执行jmap命令,生成dump文件

jmap -dump:format=b,file=serviceDump.dat 
jmap -dump:format=b,file=serviceDump.dat [java进程的PID]

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

可以看到,生成的dump文件叫:serviceDump.dat

     生成文件的位置在:/backup/tomcat7/conf/serviceDump.dat

  3》你可以将这个dat文件,通过xftp工具,拉取到你的本地

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

2.在你本机下载一个工具,叫IBM Heap Analyzer

使用IBM Heap Analyzer这个工具,打开dump文件,可以进行分析,定位到内存泄漏位置

  1》下载该IBM Heap Analyzer工具,这个工具是个jar包

下载地址:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

下载下来是

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

  2》打开工具

【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码

上一篇:Android系统截屏的实现(附代码)


下一篇:Android长截屏-- ScrollView,ListView及RecyclerView截屏