jhat - Java Heap Analysis Tool

JHAT命令解析Java堆转储文件并启动WebServer。jhat允许您使用您最喜欢的WebBrowser浏览堆转储。JHAT支持预先设计的查询(例如“show all instances of a known class "Foo"”)以及OQL((Object Query Language对象查询语言)——一种查询堆转储的类似SQL的查询语言。可以在http://localhost:7000/oqlhelp/查看有关OQL的使用说明。这个工具是实验性的,在JDK的未来版本中可能不可用。

这里有一些生成java堆转储文件的方法:

  • jmap -dump 在运行时获取堆转储
  • jconsole  在运行时通过hotspotdiagnosticmxbean获取堆转储
  • -XX:+HeapDumpOnOutOfMemoryError  启动java程序时通过使用-XX:+HeapDumpOnOutOfMemoryError命令,使程序在抛出OutOfMemoryError时自动生成堆转储
  • 使用hprof
jhat -h
Usage:  jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>-J<flag>          Pass <flag> directly to the runtime system. Forexample, -J-mx512m to use a maximum heap size of 512MB-stack false:     Turn off tracking object allocation call stack.-refs false:      Turn off tracking of references to objects-port <port>:     Set the port for the HTTP server.  Defaults to 7000-exclude <file>:  Specify a file that lists data members that shouldbe excluded from the reachableFrom query.-baseline <file>: Specify a baseline object dump.  Objects inboth heap dumps with the same ID and same class willbe marked as not being "new".-debug <int>:     Set debug level.0:  No debug output1:  Debug hprof file parsing2:  Debug hprof file parsing, no server-version          Report version number-h|-help          Print this help and exit<file>            The file to readFor a dump file that contains multiple heap dumps,
you may specify which dump in the file
by appending "#<number>" to the file name, i.e. "foo.hprof#3".All boolean options default to "true"
  • 使用方式:

jhat [ options ] <heap-dump-file>

options

Options,操作选项,如果要用的话必须紧跟在jhat后面。

heap-dump-file

要查看的java二进制堆转储文件. 如果一个 dump file包含了多个heap dumps,可以在文件后面拼接#<number>来查看某个堆, i.e. "foo.hprof#3"。

  • OPTIONS

-stack false/true

关闭对象在堆栈中的追踪,注意,如果在堆转储中分配站点信息不可用,则必须将此标志设置为false。默认值为true。
Turn off tracking object allocation call stack. Note that if allocation site information is not available in the heap dump, you have to set this flag to false. Default is true.

-refs false/true

关闭对对象引用的跟踪。默认值为true。默认情况下,为堆中的所有对象计算返回指针(指向给定对象a.k.a引用或传入引用的对象)。
Turn off tracking of references to objects. Default is true. By default, back pointers (objects pointing to a given object a.k.a referrers or in-coming references) are calculated for all objects in the heap.

-port port-number
指定server端口,默认是7000。

-exclude exclude-file

指定一个列出应从“reachable objects”查询中排除的数据成员的文件。例如,如果文件列出java.lang.string.value,那么每当计算从特定对象“o”可访问的对象列表时,将不考虑涉及java.lang.string.value字段的引用路径。
Specify a file that lists data members that should be excluded from the "reachable objects" query. For example, if the file lists java.lang.String.value, then, whenever list of objects reachable from a specific object "o" are calculated, reference paths involving java.lang.String.value field will not considered.

-baseline baseline-dump-file

指定基线堆转储(baseline heap dump)。两个堆转储中具有相同object ID的的对象将不会标记为“new”。其他对象将标记为“new”。这在比较两个不同的堆转储时很有用。

-debug int

设置debug级别,0表示没有debug输出,这个值越高,输出的模式更详细。

-version

打印版本号并退出。

eg:

jhat -version
jhat version 2.0 (java version 1.8.0_73)

-J<flag>
指定jhat的jvm命令。eg:jhat -J-Xmx512m.

JVM调优之jhat相关推荐

  1. JVM 调优实战--jhat命令使用详解

    jhat也是jdk内置的工具之一.主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言. 使用jmap等方法生成java的堆文件后,使 ...

  2. JVM调优命令-jhat

    jhat JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器 ...

  3. jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

    2019独角兽企业重金招聘Python工程师标准>>> 文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我 ...

  4. JVM调优:运行参数,内存模型,mat、jps、jstat、jmap、jstack、jvisualvm工具的使用

    JVM调优 - 工具篇 作者:张学亮 讲解内容 了解下我们为什么要学习JVM优化 掌握jvm的运行参数以及参数的设置 掌握jvm的内存模型(堆内存) 掌握jamp命令的使用以及通过MAT工具进行分析 ...

  5. JVM从入门到精通(七):GC常用参数,Method Area,JVM调优案例分析

    GC常用参数 -Xmn -Xms -Xmx -Xss 年轻代 最小堆 最大堆 栈空间 -XX:+UseTLAB 使用TLAB,默认打开 -XX:+PrintTLAB 打印TLAB的使用情况 -XX:T ...

  6. JVM从入门到精通(六):JVM调优必备理论知识 - 3种垃圾清除算法,常见的垃圾回收器

    JVM调优是一层窗户纸,只是看起来很难.学完本节课,让你: 熟悉 GC 常用算法,熟悉常见垃圾回收器,具有实际 JVM 调优实战经验 What is garbage 什么是垃圾?没有引用指向的对象就是 ...

  7. jvm系列(四):jvm调优-命令篇

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...

  8. JVM 调优系列之监控工具

    转载自  JVM 调优系列之监控工具 摘要: 项目部署线上之后,我们该如何基于监控工具来快速定位问题.... 通过上一篇的jvm垃圾回收知识,我们了解了jvm对内存分配以及垃圾回收是怎么来处理的.理论 ...

  9. JVM(五)JVM调优

    文章目录 一.调优实践 1.1 规划 1.1.1 规划步骤 1.1.2 规划案例 1.2 解决JVM运行过程中出现的问题 1.2.1 用jstack定位锁相关问题 1.2.2 OOM问题的定位方式 1 ...

最新文章

  1. 让asp.net默认的上传组件支持进度条反映(转)
  2. 5000万用户数据泄露,大数据时代隐私保护困难重重
  3. 单片机课程设计数字心率计_光学心率传感器详细使用教程
  4. 如何在SAP云平台ABAP编程环境里创建自己的Z表
  5. FloatingActionButton完美显示
  6. 马上有钱:揭密25种成为有钱人的方法(图)
  7. Android studio小问题解决
  8. 设备上的介质簇的结构不正确_环保设备选型参考系列——生化系统之潜水搅拌机【价格】...
  9. android bitmap oom 最新处理办法,【移动开发】Android中图片过大造成内存溢出,OOM(OutOfMemory)异常解决方法...
  10. android expandablelistview横向,Android ExpandableListView使用小结(二)
  11. 对于IT这两个字眼,是不是只能由学习过IT的大学生才能做呢,就由我来为大家讲解一下IT的由来!
  12. 08 计算机视觉-opencv直方图与傅里叶变换
  13. HTTP/3正式发布,深入理解HTTP/3协议
  14. Flume+Kafka+Storm+Redis流计算实现wordcount示例
  15. 从零开始学习Prometheus监控报警系统
  16. Android11裁剪,Andorid 11调用系统裁剪
  17. 短信API整合在spring里面(3)
  18. 容器Docker学习系列五~命令学习history,save, import
  19. 60所大学计算机具有博士点,全国具有测绘科学与技术学科博士点、硕士点的高校及科研院所名单...
  20. Hydra-口令破解神器

热门文章

  1. 鸿蒙和苹果拍照对比,【图片】鸿蒙决定华为“生死”?对比苹果之后,终于知道鸿蒙的重要性了【手机吧】_百度贴吧...
  2. Delphi QuotedStr函数的原型
  3. oracle 执行带参数的sql语句_Oracle动态SQL语句的简单执行
  4. java excel 展开折叠_Java在Excel中创建多级分组、折叠或展开分组的实现
  5. MATLAB | 可视化 | 罗密欧与朱丽叶的数据统计
  6. glance制作Linux镜像,在线升级glance镜像技巧
  7. 带渐变色的柱状图,看着挺美~
  8. vulnhub-EMPIRE: BREAKOUT
  9. HTML+CSS基础(转载)
  10. mysql多库组件_TDSQL(MySQL版)之DB组件升级