JVM调优小工具之jhat

JVM大对象排查 在Linux环境下查看占用内存较多的java对象 使用top查看到排名靠前的java进程 查看占用内存较多的前30名java对象 jmap -histo:live 【pid】 | head -30,也可以导出到文件中: jmap -dump:format=b,file=/filepath/heap.bin pid 备注:如果当前用户不是启动java进程的用户,使用j... 阅读详情
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级别
使用示例
  1. jhat dump-file分析堆转储文件
david@UX501:~$ jhat /home/david/Desktop/dump.dp 
Reading from /home/david/Desktop/dump.dp...
Dump file created Sun Jul 26 11:01:36 GMT+08:00 2020
Snapshot read, resolving...
Resolving 226226 objects...
Chasing references, expect 45 dots.............................................
Eliminating duplicate references.............................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
  1. 打开浏览器查看分析结果
    在这里插入图片描述

  2. 查看每个类的实例数
    在这里插入图片描述

  3. 查看占用空间比较多的对象
    在这里插入图片描述

  4. 执行OQL(Object Query Language 具体语法将单独进行介绍)
    在这里插入图片描述

小结

jhat可以完成基本的堆转储文件分析,但由于堆转储文件分析比较耗费资源,一般会将其拷贝到其它计算机上进行分析,实际就没有必要用jhat这类命令行工具。所以条件允许的情况下,不建议使用。

参考资料

Oracle官方文档

未经授权,禁止转载

JVM 性能调优监控工具之Jmap和 Jhat JVM 性能调优监控工具之Jmap和 Jhat 文章目录JVM 性能调优监控工具之Jmap和 Jhat前言一、什么是jmap和jhat?二、方式一1.jmap导出堆内存2.以本人项目服务器为例3.查看进程堆内存使用情况4.查看堆内存中的对象数目二、方式二(dump导出文件方式)1.jmap把进程内存dump到文件中2.使用jhat查看存储文件总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、什么是jmap和jhat? jmap命令是把进程内存使用情况转存到dump文件中,再用jhat分 阅读详情

相关推荐

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 … 这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题.

zihong522的博客 1080

jhat命令分析java heapdump信息实战

前言: 很多时候,我们需要分析下当前进程的内存使用情况(OOM等异常)。 一般,我们会先使用命令打印出一个heap dump文件(文件会比较大),然后使用命令或工具来分析占用内存比较大的对象。 命令的话就是使用本文中要介绍的jhat命令,而关于工具一般使用MAT工具(下一篇文章中介绍)。 本次使用jhat工具主要完成三个小目标: * 占用内存最大对象分析 * 对象具体内容分析 * OQL语句使用 1.准备工作 1.1 基本对象 public class Student impl

恐龙弟旺仔的博客 4921

【JVM】JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

现实企业级 Java 开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java 进程消耗 CPU 过高......这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是 Java 程序员进阶的必备要求。本文将对一些常用的 JVM 性能调优监控工具进行介绍,希望能起抛砖引玉之用。关于 JVM 性能调优相关的资料,请参考文末。

AI天才研究院 1万+

jhat中的OQL(对象查询语言)

        如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可以在jhat的html页面中执行OQL,来查询符合条件的对象。 一.基本语法  select &lt;javascript expression to select&gt; [from [instanceof] &lt;class name&gt; &lt;identifier&gt;] [where &lt;ja...

wjxbj的博客 629

泛微OA与金蝶云星空深度集成实战:审批与表单双场景解析

本文深入解析泛微OA与金蝶云星空的深度集成实战,聚焦审批流程与表单对接两大核心场景。通过具体案例,详细阐述了如何实现业务数据与审批流程的自动联动,打破数据孤岛,提升企业运营效率与数据一致性,并分享了接口设计、安全策略及实战避坑指南。

4k5l6j7h8的博客 466

fsQCA实战:从数据校准到结果解读的完整流程(附R代码示例)

本文提供了一份完整的模糊集定性比较分析(fsQCA)实战指南,详细阐述了从数据校准、必要条件分析、真值表构建到布尔最小化与结果解读的全流程。通过R语言代码示例,帮助研究者掌握如何将理论转化为可操作的分析步骤,并产出稳健的中间解,以揭示导致结果的复杂条件组合。

d6e7f8g9h的博客 1171

13.5.虚拟化工具--jhat详解、13.6.虚拟化工具--jstack详解

13.5.虚拟化工具–jhat详解 一般不通过这个命令执行,而是通过图形化工具类查看jvm信息。 在页面下有: 查看什么是OQL语句 在页面上有OQL help,可以查看OQL的语法。 13.6.虚拟化工具–jstack详解 转自:https://zhuanlan.zhihu.com/p/88880002 jstack主要用来查看某个Java进程内的线程堆栈信息. 1, jps 查看java进程pid 2, top -Hp pid 找出该进程内最耗费CPU的线程 3, printf “%x\n

涂作权的博客 385

csp-j/s

CSP-J/S 是中国计算机学会(CCF)主办的 ‌‌(Certified Software Professional Junior/Senior),是信息学奥赛(NOI)体系的入门级选拔考试,也是国内最具权威性的青少年编程能力认证之一。

gxyxxrYYDS的博客 2028

java线上问题定位-jhat命令详解

针对服务性能问题,还需要结合具体代码进行排查,观察是否有大量应该被回收的对象一直在被引用,或者是否有占用内存特别大的对象无法被回收,通常在调优的时候这两点关注的会比较多。jhat 命令通常与 jmap 搭配使用,用来分析 jmap 生成的 dump 文件,jhat 内置了一个微型的。翻到最底部可以查询 jhat 提供的几个查询功能,部分列表信息如下。在操作系统终端输入如下命令,即可查看相关信息,部分示例如下。服务器,生成 dump 的分析结果后,可以在浏览器中查看。,可以查询快照文件分析结果。

我的博客 1001

UE5深度图与Mask图渲染实战:从基础到高级应用

本文详细解析了在UE5中渲染深度图与Mask图的完整实战流程。从启用电影渲染队列、配置自定义深度模板通道等前期准备,到构建即用型深度图材质网络与精准物体Mask生成,并深入探讨了二者结合在NPR风格化、程序化雾气及AI工作流(如ComfyUI)中的高级应用,为影视、游戏后期与AI创作提供了高效的解决方案。

weixin_29001419的博客 349

部署与可视化系统:零基础到精通:LabVIEW 调用 YOLO 动态链接库(DLL)的保姆级视觉检测系统融合实战

LabVIEW与YOLO26深度集成:工业视觉检测新范式 本文揭示了LabVIEW与最新YOLO26模型深度集成的创新方案,通过C++封装ONNX Runtime为DLL,在LabVIEW中实现端到端视觉检测。核心突破点包括: 技术选型:对比YOLOv5/YOLOv8/YOLO26性能,YOLO26在CPU推理速度提升43%,支持NMS-Free端到端推理 部署架构:提供ONNX Runtime C++ API和TensorRT两种DLL封装路径,适配不同硬件环境 工程实现:详细展示从PyTorch模型导出

ZXSXJ的博客 282

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...... 这些问题在日常开发中可能被很多人忽视(比如...

chitankong1289的博客 1万+

多模型机器学习生存预测分析:AUC比较、生存分层与SHAP解释

本文研究了多种机器学习模型在心力衰竭患者生存预测中的应用。通过比较逻辑回归、随机森林、XGBoost、LightGBM和梯度提升机五种模型的AUC表现,选择最优预测模型。基于最优模型的预测概率对患者进行风险分层,并使用Kaplan-Meier生存分析和log-rank检验验证分层的有效性。最后采用SHAP方法解释模型决策过程,识别关键预测因素。研究提供了从模型构建、评估到解释的完整技术流程,为临床预后预测提供了可复现的分析框架。

AI的内部世界的博客 157

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题:1.OutOfMemoryError,内存不足2.内存泄露3.线程死锁4.锁争用(Lock Contention)5.Java进程消耗CPU过高。

weixin_43167662的博客 1886

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 518

【Mode】多模干涉仪的设计 Multi-mode interferometer(MMI)

与 Splitter 器件一样,MMI 器件也是一种常见的分光器件,可以根据用户的需求将光束分成不同的比例。本文,我们将介绍如何仿真 MMI 器件。这里我们使用的是 1x2 MMI,其本质上是由四个部分组成的,中间的矩形多模式干涉区域以及左右两侧的三个 taper 模式转换区域。之前的教程中我们也提及了,为了获取稳定的模式场分布,通常,我们需要进行模式收敛性扫描。这里以官网给出的案例为例。如何提取 S 参数我们先暂时不做介绍,后续有时间了我们再做介绍。

u011699626的博客 1214

JVM 性能调优 -- JVM常用调优工具【jps、jstack、jmap、jstats 命令】

总结:本篇分享 JDK 自带的一些 JVM 调优工具的使用,使用 jps、jinfo、jmap、jstack、jhat、jstat 命令来查看 Java 应用程序的堆栈信息,来辅助我们进行 JVM 调优,关于可视化工具的部分我们下一篇再来分享,希望可以帮助到有需要的朋友们。可以看到执行 jinfo 命令打印了非常多的信息,包括 Java 版本、环境信息、JVM 参数等非常多的信息,这些信息并不是我们都要关注的,如果我们想要少看到一些信息,可以使用 jinfo -flags 线程pid 命令。

weixin_42118323的博客 2416

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JVM常用的调优参数和调优工具

本文主要讲的是JVM常用的调优参数和调优工具。JVM调优可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的。其他的都无需GC。 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。

霁晨晨晨的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于JVM调优的工具及JVM 常见调优参数

六个命令行排查工具 我们一般使用 JDK 自带的 6 个命令行工具来排查JVM。它们分别是:jps、jstat、jinfo、jmap、jhat 和 jstack,它们都位于 JDK 的 bin 目录下,可以使用命令行工具直接运行。 jps(虚拟机进程状况工具) jps(JVM Process Status tool,虚拟机进程状况工具),用于列出正在运行的 JVM 的 LVMID(Local Virtual Machine IDentifier,本地虚拟机唯一 ID),以及 JVM 的执行主类、JVM 启动

Gebo的博客 1229

springboot-jvm调优

JVM调优,使用jvisualvm,jconsole,jmap,jps等。

Java自学笔记-springBoot微服务 1976

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof

前提概要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 ...

猪之仆的博客 1456

JVM调优之JVM自带性能调优工具

前言 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,每一种工具都有其自身的特点,用户可以根据你需要检测的应用或者程序片段的状况,适当的选择相应的工具进行检测。接下来的两个专题分别会讲VisualVM的具体应用。 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention)

qq_39093474的博客 2103

JVM性能调优监控工具jps、jstat、jinfo、jmap、jhat、jstack使用详解

除了集成式的VisualVM和JConsole外,JDK本身还提供了如jps、jstack、jmap、jhat、jstat等性能调优监控工具。在Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高……这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大

JavaSheng的专栏 3118

JVM 调优

JVM调优工具 JDK的bin目录下有很多用于监视虚拟机和故障处理的工具,这些工具都非常稳定而且功能强大,能在处理应用程序性能问题、定位故障是发挥很大的作用。 一、jps:虚拟机进程状况工具 二、jstat:虚拟机统计信息监视工具 三、jmap:Java内存印象工具 四、jhat:虚拟机堆转储快照分析工具 五、jstack:Java堆栈跟踪工具 六、jinfo:Java配置信息工具 ...

852
上一篇: JVM调优小工具之jmap
下一篇: Java可视化监控工具JConsole
小菜大白
博客等级 码龄10年 4粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值