JVM调优小工具之jhat

jhat是JVM的堆分析工具,用于分析heap-dump-file。通过命令行启动后,可以在浏览器中查看分析结果,包括类实例数、占用空间的对象等信息。虽然由于资源消耗大,通常不在本地使用,但了解其使用方法对JVM调优有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jhat简介

jhat(JVM Heap Analysis Tool)是JDK自带的转储快照分析工具。

使用方法

命令格式: jhat [options] heap-dump-file(待分析完成后访问localhost:7000)
options:

options 作用
-stack <bool> 关闭跟踪对象分配调用堆栈。如果堆转储中没有分配站点信息,则必须将此标志设置为false。默认值为true。
-refs <bool> 关闭对对象引用的跟踪。默认值为true。默认情况下,将为堆中的所有对象计算后向指针,即指向指定对象的对象,例如引用程序或传入引用。
-port number 设置jhat Http Server端口号
-exclude exclude-file 指定一个文件,该文件列出了应从可达对象查询中排除的数据成员。例如,如果文件列出java.lang.String.value,则无论何时计算从特定对象可访问的对象列表,java.lang.String.value都不会考虑涉及字段的引用路径。
-baseline exclude-file 指定基准堆转储。两个堆转储中具有相同对象ID的对象都标记为不是新对象。其他对象被标记为新对象。这对于比较两个不同的堆转储很有用。
-debug <int> 设置debug级别
使
### 推荐的JVM性能工具 以下是几种常用的JVM性能工具及其特点: #### 1. **JVisualVM** `JVisualVM` 是一种图形化工具,能够帮助开发者监控、分析和Java 应用程序。它可以显示 JVM 的内存使用情况、线程状态以及其他重要指标,并支持插件扩展功能[^1]。 #### 2. **jps (Java Virtual Machine Process Status Tool)** `jps` 工具用于列出当前系统中所有的 Java 进程及其进程 ID(PID)。这是其他诊断工具的基础,因为许多工具都需要 PID 来连接到目标 JVM 实例[^2]。 #### 3. **jstack** `jstack` 可以生成指定 Java 进程的线程转储信息,这对于排查线程死锁或长时间阻塞等问题非常有用。通过 `-l` 参数还可以获取详细的锁信息,而 `-m` 则提供了混合模式下的 C/C++ 堆栈跟踪[^5]。 #### 4. **jmap 和 jhat** - `jmap` 提供了关于堆内存的状态快照,包括对象分配详情和垃圾回收行为。 - 配合 `jhat` 使用时,可以启动一个 HTTP/HTML 浏览器界面来查看这些数据,便于深入理解内存泄漏或其他问题。 #### 5. **jstat (JVM Statistics Monitoring Tool)** 此命令行实用程序允许实时监视虚拟机的各种统计信息,如类加载、编译效率以及不同代别的 GC 活动频率等。它是快速了解 JVM 内部运作状况的好帮手。 #### 6. **hprof (Heap/CPU Profiling Tool)** 作为内置配置文件生成器之一,`hprof` 能够记录 CPU 时间消耗或者追踪内存分配路径,从而辅助定位瓶颈所在位置。 #### 7. **第三方商业产品** 对于更大规模的应用场景来说,可能还需要依赖更加专业的解决方案: - **YourKit**: 功能全面且易于操作,适合各种级别的开发人员; - **JProfiler**: 主打交互性强的特点,特别擅长处理复杂的分布式事务; - **Prometheus + Grafana**: 如果团队已经采用 DevOps 方法论,则这套开源组合也可以很好地集成进来完成持续交付流程中的自动化测试环节[^4]。 ```python import os def get_jvm_tools(): tools = [ "JVisualVM", "jps", "jstack", "jmap & jhat", "jstat", "hprof" ] third_party = ["YourKit", "JProfiler", "Prometheus + Grafana"] return {"built_in": tools, "third_party": third_party} print(get_jvm_tools()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值