java内存溢出分析(一)

时间:2022-02-04 22:05:38

在项目中发现内存占用过高,且一直不会释放,top命令如下图显示

java内存溢出分析(一)

可以看到pid为17453的java进程占用27.1%内存,且长时间没有释放。

1.使用命令生成heap日志以供分析

sudo jmap -dump:live,format=b,file=smart.hprof 17453

2.下载smart.hprof文件到本地。

3.安装MAT(Memory Analyzer Tool)到eclipse,安装地址http://archive.eclipse.org/mat/1.0/update-site/

打开分析该日志文件

java内存溢出分析(一)

点击finish,可以看到如下图

java内存溢出分析(一)

我们可以发现,其指出了具体TexasRoomExtension这个类中有许多引用占用内存,没有释放。目前在进一步的问题定位中。