内存分析——Memory Analyzer

说明:记录一次java内存分析的办法。因为本人未使用 Eclipse进行编写代码,所以无法直接使用 eclipse 直接分析。替代方式是将dump文件直接用Memory Analyzer Tools工具进行分析。以下是步骤。

1 安装 Memory Analyzer Tools

官网地址:http://www.eclipse.org/mat/downloads.php
内存分析——Memory Analyzer_第1张图片
这个地址下载速度比较慢,而且下载服务器老是崩溃,后面在网上找了个下载包,linux_x86-64位的,如果需要可以私聊。

解压后的目录如下:
内存分析——Memory Analyzer_第2张图片

2 内存 dump 文件生成

dump文件可以是内存溢出是,自动生成的,java配置参数是 :

 -XX:+HeapDumpOnOutOfMemoryError 
 -XX:HeapDumpPath=/opt/app/m.hprof

手动生成直接导出,命令如下:

jmap -dump:live,format=b,file=m.hprof ${PID}

3 分析 dump 文件

在安装路径下直接执行以下命令:

./ParseHeapDump.sh /opt/memory_analyzer/m.hprof org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components

此命令会在 m.hprof 同级目录下生成许多文件,所以建议创建个新目录再执行此命令。结果如下:
内存分析——Memory Analyzer_第3张图片

4 打开分析报告

将上面的文件全部拷贝至本地,解压 .zip 文件
使用浏览器打开 index.html 文件的内容,显示如下:
内存分析——Memory Analyzer_第4张图片
至此可以分析具体原因。

你可能感兴趣的:(java)