在项目中发现内存占用过高,且一直不会释放,top命令如下图显示
可以看到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/
打开分析该日志文件
点击finish,可以看到如下图
我们可以发现,其指出了具体TexasRoomExtension这个类中有许多引用占用内存,没有释放。目前在进一步的问题定位中。