MAT 与 JProfiler 使用指南
MAT(Memory Analyzer Tool)和 JProfiler 是 Java 内存分析的两大利器。MAT 适合分析堆转储文件,JProfiler 适合实时监控和诊断。
掌握这两个工具,是排查内存问题的必备技能。
MAT(Memory Analyzer Tool)
MAT 是 Eclipse 提供的开源堆转储分析工具,适合分析大型堆转储文件。
安装与启动
核心视图
1. Leak Suspects
自动分析可能的内存泄漏点:
2. Component Report
按组件分析内存占用:
3. Histogram
对象直方图:
4. Dominator Tree
支配树视图:
常用查询
查找某类的所有实例
查找 GC Roots 路径
OQL 查询
MAT 支持对象查询语言(OQL):
JProfiler
JProfiler 是商业性能分析工具,支持实时监控、CPU 分析、内存分析等功能。
安装与启动
核心视图
1. Memory Views(内存视图)
2. Heap Walker
堆分析器,类似 MAT:
3. Allocation View(分配视图)
实时监控
常见分析场景
场景一:查找内存泄漏
场景二:分析对象引用
场景三:分析内存分配热点
VisualVM
VisualVM 是 JDK 自带的免费监控工具:
Arthas 内存分析
Arthas 是阿里巴巴开源的 Java 诊断工具:
Arthas 与 MAT 配合
工具对比
选择建议
- OOM 问题排查:首选 MAT
- 性能调优:首选 JProfiler
- 快速诊断:VisualVM 或 Arthas
- 生产环境:Arthas(无需停机)