3 dump 文件分析
3.1 dump 生成
JProfiler 在线
当JProfiler连接到JVM之后选择Heap Walker,选择Take snapshot图标,然后等待即可
如果内存很大,jprofiler万一参数设置的不正确打不开就需要要重新生成,内存小的时候无所谓
使用JProfiler生成文件
当JProfiler连接到JVM之后选择菜单上的Profiling->save HPROF snapshot 弹出下拉框保存即可,这时候生成的文件就可以一直保存在文件上
jmap
jmap -dump:format=b,file=文件名 pid windows下不用[],路径要加引号 jmap -dump:format=b,file="D:\a.dump" 8632
命令中文件名就是要保存的dump文件路径, pid就是当前jvm进程的id
JVM启动参数
在发生outofmemory的时候自动生成dump文件:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump
Pah后面是一个存在的可访问的路径,将改参数放入jvm启动参数可以在发生内存outofmemory的时候自动生成dump文件,但是正式环境使用的时候不要加这个参数,不然在内存快满的时候总是会生成dump而导致jvm卡半天,需要调试的时候才需要加这个参数
注意:通过WAS生成的PHD文件dump不能分析出出问题的模板,因为PHD文件不包含对象的值内容,无法根据PHD文件找到出问题的模板,所以PHD文件没有太大的参考价值
3.2 dump文件分析
dump文件生成后,将dump压缩传输到本地,不管当前dump的后缀名是什么,直接改成*.hprof,就可以直接用jprofiler打开了
打开的过程时间可能会很长,主要是要对dump进行预处理,计算什么的,注意 这个过程不能点skip,否则就不太好定位大文件
直接打开.hprof文件
注意如下过程,中途可以喝一杯☕️,不要作死手滑点击了 skip!
这样界面的时候下面可以开始进行操作了!








