试环境
Java Q?/span> JDK1.6
TomcatQ?/span> Tomcat 5.5
Eclipse Memory AnalyzerQ?/span>EMA 1.2.1Q直接去Eclipse下蝲Q无需安装哈)
获得Heap Dump文g
Eclipse Memory Analyzer是针?/span>Heap Dump文gq行分析的,因此W一步就是要获得Heap Dump文g?/span>
步骤Q?/span>
获得U程ID?/span>启动jconsole.exe,?/span>位于jdk目录下的bin目录Q?/span>jconsole?/span>jdk自带的一个内存分析工P它提供了囑Ş界面。可以查看到被监控的jvm的内存信息,U程信息Q类加蝲信息Q?/span>MBean信息?br />
此处我们可以扑ֈ需要检的Tomcat的线E?/span>ID?/span>
获得Heap Dump文g?/span>使用jmap来获?/span>Heap Dump文gQ命令行如下Q?/span>
jmap -dump:format=b,file=heap.bin 3888
此处3888是Tomcat对应的线E?/span>ID
生成分析报告
启动MemoryAnalyzer.exeQ打开指定?/span>Heap Dump文g?/span>File -> Open Heap Dump
MAT针对指定?/span>Heap Dump文gq行分析Q生成内存泄露检报?br />
看懂分析报告
要想看懂EAT的报告,与其到网上去扑U神_不如老老实实找本书Q先单复习下JVM?/span>Heap是怎么工作_gc的大概一个工作机制。否?/span>EAT的报告就像天书一栗?/span>EAT只是工具Q不是目的?/span>