【JVM调优实战】19-堆dump与线程dump分析
堆 dump 与线程 dump 分析方法论本文是《JVM调优实战》专栏第 19 讲。引言在前四讲中,我们走完了 JVM 诊断工具的"全景图":命令行工具(第 15 讲)、可视化工具(第 16 讲)、Arthas 在线诊断(第 17 讲)、火焰图性能分析(第 18 讲)。掌握了这些工具后,你会发现最终分析的两个核心载体是:堆 dump(hprof 文件)和线程 dump(thread stack)。前者是内存的"尸检报告",后者是线程的"心电图"。但拿到 dump 文件只是第一步。真正的挑战在于:面对一个几百 MB 的 hprof 文件,你该从哪里开始看?面对十几页的线程栈,哪些是正常等待、哪些是异常阻塞?这一讲将梳理一套可复用的分析方法论——不是"这个按钮点一下"式的操作指南,而是如何从海量数据中快速锁定关键信息的思维框架。堆 Dump(Heap Dump)基础什么是 hprof 文件堆 dump 本质是某个时刻 JVM 堆内存的快照,包含了当时所有存活对象的完整信息:类型、字段值、引用关系。文件格式为 HPROF(Heap PROFile),通常以.hprof为扩展名。三种获取方式方式一:jmap(