Java 堆栈信息分析hprof 文件(分析及查询OOM)
堆栈信息分析都很多工具
简单介绍使用Java 1.7自带的工具进行分析 堆栈信息文件(hprof)
1、在命令窗口进行JAVA安装目录下,再进入bin;(最好是以管理员身份运行)
如:C:\Java\Jdk1.7.0_80\bin
2、使用 jhat 命令进行分析
如: jhat -J-mx5120M d:\123\java_pid25511.hprof
如果抓取堆文件过大,执行时,本身会出现OOM,即可命令调整扩大参数 -mx7168M ,逐步扩大;
3、分析成功后,即可使用浏览器访问,查看分析结果
http://localhost:7000
4、查看当前堆文件信息的各类历史信息统计数
一般查看前3个 class B class C class D 中,含有对象、实例等目前的次数,次数越多代表占用内容越大,所以很大程度就是OOM的罪魁祸首
找到属于你代码中使用的类、实例、方法或者对象等,修改代码释放对象或者实例。
排查原则是:排在前10位,项目中特有的类、实例、方法或者对象;
原因是这些在Java中没有被自动回收或释放,长时间占用内存,并积压,到达一定程度就会报OOM。