Java记一次线上内存溢出实战分析
Java记一次线上内存溢出实战分析
1.准备工具
下载插件: MemoryAnalyzer-1.9.2.20200115-win32.win32.x86_64.zip
下载地址:https://www.eclipse.org/mat/downloads.php
下载后解压:
双击 MemoryAnalyzer.exe 打开面板
点击 Leak Suspects 进入疑似泄露点视图
疑似问题1 (Problem Suspect 1)该TDSPacket对象类型占用了300多M,占用了总内存22.36%,这么大的内存占用率,很有可能导致内存异常
点击 Details 进入第一个疑似点
单击该行,单击 Java Basics,单击 Thread Details
进入到线程栈信息,红框中的是项目的业务类,到这一步根据根据方法的功能,基本就能推断出内存泄漏的原因了。
本例是一个导出execl 的功能,没有现在好导出内容大小,导致内存溢出