java如何找到内存图
获取 Java 内存图的方法
使用 JDK 内置工具
通过 jmap 命令生成堆内存快照(HPROF 文件),再通过 jhat 或可视化工具(如 Eclipse MAT)分析内存对象分布。命令示例:
jmap -dump:format=b,file=heap.hprof <pid>
通过 VisualVM 或 JConsole
JDK 自带的 VisualVM 或 JConsole 可实时监控堆内存使用情况,并提供对象实例的统计视图。启动 VisualVM 后连接目标 Java 进程,切换到“监视器”标签查看内存动态图表。
使用 Eclipse Memory Analyzer (MAT)
分析 jmap 生成的堆转储文件,MAT 能生成直观的内存泄漏报告和对象依赖图。安装 MAT 后直接打开 HPROF 文件,通过“Histogram”或“Dominator Tree”功能查看对象占用详情。
代码级分析工具
- JProfiler:商业工具,提供实时内存分配跟踪和可视化引用关系图。
- YourKit:支持内存快照对比和对象分配热点分析。
JVM 参数记录
启动应用时添加 -XX:+HeapDumpOnOutOfMemoryError 参数,可在 OOM 时自动生成堆转储文件,便于事后分析内存异常。
注意

- 生成堆转储文件可能暂停应用线程,建议在测试环境使用。
- 对于生产环境,优先采用低开销工具(如 Arthas)进行轻量级诊断。






