常见内存分析工具对比
下图中 Y 表示支持,N 表示不支持,时间截至发稿前。
产品功能 | MAT | JProfiler | Visual VM | jhat | jmap | hprof |
---|---|---|---|---|---|---|
对象关联分析、深浅堆、GC ROOT、内存泄漏检测、线程分析、提供自定义程序扩展扩展 | Y | N | N | N | N | N |
离线全局分析 | Y | N | Y | Y | N | N |
内存实时分配情况 | N | Y | Y | Y | Y | Y |
OQL | Y | N | Y | N | N | N |
内存分配堆栈、热点比例 | N | Y | N | N | N | N |
堆外内存分析 | N | N | N | N | N | N |
注 1:Dump 文件包含快照被转储时刻的 Java 对象 在堆内存中的分布情况,但快照只是瞬间的记录,所以不包含对象在何时、在哪个方法中被分配这类信息。
注 2:一般堆外内存溢出排查可结合 gperftools 与 btrace 排查,此类文章较多不展开介绍。
JVM 内存分析工具 MAT 的深度讲解与实践——入门篇
https://juejin.cn/post/6908665391136899079