最近在学习JVM的工作原理,这是高级工程师必学的知识,书放了好久,现在终于鼓起勇气看完了基础部分。
MAT(Memory Analyzer tool)是分析JVM内存使用情况的工具,可以对线上的项目导出dump快照文件,真实的项目一般都是在Linux服务器上运行,而命令行式的分析难免费劲,这是可以通过导出的dump文件导出后,在可视化的界面进行分析。使用eclipse安装mat的过程可以参考:eclipse安装Eclipse Memory Analyzer插件
下面记录一下,如何使用MAT时怎么使用的,具体的使用过程不太好写,自己也在不断的学习过程中,不敢多说,下面仅记录一下其中的两个过程以备忘:
- 导出项目的快照dump文件
- 使用mat打开dump文件
- 导入项目的快照dump文件
可以通过两种方式导出dump文件,参数设置方式和命令方式。
参数方式导出
我们可以在项目出现OutOfMemory错误的时候让系统自动执行导出dump文件的过程,这是需要设置两个参数
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:\proj.bin
这样在出现内存溢出的时候系统就可以自动导出这个文件,这个文件一般都非常大。