`

java-jvm-jhat

 
阅读更多

功能:可以分析jmap dump下的hprof文件

一般配合

 

 jmap -dump:format=b,file=dumpFileName pid

或者

jmap -histo:live 21711 | more

 

jmap -histo:live 21711 | more

 num     #instances         #bytes  class name
----------------------------------------------
   1:         38445        5597736  <constMethodKlass>
   2:         38445        5237288  <methodKlass>
   3:          3500        3749504  <constantPoolKlass>
   4:         60858        3242600  <symbolKlass>
   5:          3500        2715264  <instanceKlassKlass>
   6:          2796        2131424  <constantPoolCacheKlass>
   7:          5543        1317400  [I
   8:         13714        1010768  [C
   9:          4752        1003344  [B
  10:          1225         639656  <methodDataKlass>
  11:         14194         454208  java.lang.String
  12:          3809         396136  java.lang.Class
  13:          4979         311952  [S
  14:          5598         287064  [[I
  15:          3028         266464  java.lang.reflect.Method
  16:           280         163520  <objArrayKlassKlass>
  17:          4355         139360  java.util.HashMap$Entry
  18:          1869         138568  [Ljava.util.HashMap$Entry;
  19:          2443          97720  java.util.LinkedHashMap$Entry
  20:          2072          82880  java.lang.ref.SoftReference
  21:          1807          71528  [Ljava.lang.Object;
  22:          2206          70592  java.lang.ref.WeakReference
  23:           934          52304  java.util.LinkedHashMap
  24:           871          48776  java.beans.MethodDescriptor
  25:          1442          46144  java.util.concurrent.ConcurrentHashMap$HashEntry
  26:           804          38592  java.util.HashMap
  27:           948          37920  java.util.concurrent.ConcurrentHashMap$Segment
  28:          1621          35696  [Ljava.lang.Class;
  29:          1313          34880  [Ljava.lang.String;
  30:          1396          33504  java.util.LinkedList$Entry
  31:           462          33264  java.lang.reflect.Field
  32:          1024          32768  java.util.Hashtable$Entry
  33:           948          31440  [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;



  

 class name是对象类型,说明如下:

B  byte
C  char
D  double
F  float
I  int
J  long
Z  boolean
[  数组,如[I表示int[]
[L+类名 其他对象

 

命令:

jhat  -J-Xmx1024m  D:\myProject\project\httpclientTest\java_pid4652.hprof

输出:

C:\Users\xinchun.wang>jhat  -J-Xmx1024m  D:\myProject\project\httpclientTest\java_pid4652.hprof
Reading from D:\myProject\project\httpclientTest\java_pid4652.hprof...
Dump file created Sun May 14 19:22:48 CST 2017
Snapshot read, resolving...
Resolving 818455 objects...
Chasing references, expect 163 dots.................................................................................................
Eliminating duplicate references....................................................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.


 

 

浏览器输入:http://127.0.0.1:7000/

 

展示:

All Classes (excluding platform)

Package <Default Package>

class Test [0xff392c48]
class Test$OOMObject [0xff392bd8]
Other Queries

All classes including platform
Show all members of the rootset
Show instance counts for all classes (including platform)
Show instance counts for all classes (excluding platform)
Show heap histogram
Show finalizer summary
Execute Object Query Language (OQL) query

 

分享到:
评论

相关推荐

    java-JVM-面试题从基础到高级详解-HM

    2. **JDK自带工具**:如jconsole、jvisualvm用于监控JVM状态,jmap用于内存映射,jstack用于线程堆栈快照,jhat用于堆转储分析。 五、JVM与其他技术的交互 1. **JNI(Java Native Interface)**:允许Java代码调用...

    JAVA命令大全-JVM设置.rar

    3. **性能监控**:`jstat`用于监控JVM的运行时统计信息,`jmap`获取堆内存详细信息或生成堆转储文件,`jhat`分析堆转储文件,`jconsole`和`jvisualvm`提供图形界面进行性能监控和诊断。 4. **JVM诊断**:`jinfo`...

    亲测可用java-1.8.0-openjdk.linux.x86_64.zip

    开发包通常会包含JDK中的核心组件,如Java编译器(javac)、Java虚拟机(JVM)、Java运行时环境(JRE)以及开发工具,例如Javadoc(生成API文档)和JAR(打包工具)等。 在CentOS上安装这个开发包后,你可以进行...

    java-sdk-4.11.0.jar.zip

    2. **Java运行时环境**(JRE):包括Java虚拟机(JVM)和Java核心类库,使得Java程序可以在任何支持Java的平台上运行。 3. **Java开发工具**(JDK工具):如`jar`命令用于创建、管理和提取JAR文件,`javadoc`用于...

    jhat 使用方法 -----------

    jhat 是 JavaHeapAnalysisTool 的缩写,它是一个 Java 虚拟机(JVM)堆分析工具,由 Sun Microsystems 提供,用于对 Java 应用程序的堆内存进行分析和诊断。下面是 jhat 的使用方法指南: jhat 的基本概念 jhat ...

    练习JVM调优-jvm_demo.zip

    在Java开发领域,JVM(Java Virtual Machine)是至关重要的组成部分,它负责解析并执行Java程序。JVM调优是一项核心技能,可以帮助我们优化应用程序的性能,减少内存消耗,提高响应速度,以及避免可能出现的垃圾收集...

    生产环境jvm调优的实例代码-jvm.zip

    在生产环境中进行JVM(Java Virtual Machine)调优是确保应用程序高效、稳定运行的关键步骤。JVM调优涉及多个方面,包括内存配置、垃圾收集器选择、线程设置、类加载机制优化等。这里我们将详细探讨这些关键知识点,...

    2024年java面试题-jvm性能调优面试题第二部分

    ### 2024年Java面试题:JVM性能调优面试题第二部分 #### 内存模型及分区 在Java虚拟机(JVM)中,内存主要被划分为以下几个区域: 1. **堆区(Heap)**:堆区是用于存储初始化的对象、成员变量等数据的地方。所有对象...

    jvm调优-jvm.zip

    Java虚拟机(JVM)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及优化代码性能。JVM调优是一项关键技能,它涉及到调整JVM的配置参数,以达到最佳的程序运行效率,防止内存泄漏,以及确保应用程序的...

    带你全面理解JVM,掌握常规JVM调优-JVM.zip

    Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。在这个全面理解JVM并掌握常规JVM调优的教程中,我们将深入探讨JVM的工作原理、内存模型、垃圾收集机制、类加载过程以及如何...

    jvm原理机器调优-jvm.zip

    Java虚拟机(JVM)是Java程序运行的基础,它负责解析和执行字节码,为开发者提供了跨平台的运行环境。JVM原理和调优是每个Java开发人员必须掌握的关键技能,这涉及到内存管理、垃圾收集、性能优化等多个方面。在深入...

    Tomcat教程-JVM相关工具.docx

    在Java开发和运维中,了解和掌握JVM(Java虚拟机)的相关工具是至关重要的。这些工具可以帮助我们更好地管理和优化应用程序的性能。本教程将详细解释Tomcat服务器中与JVM相关的几个关键工具,包括它们的功能、使用...

    1. JVM 内存结构的组成、各部分功能作用,学会利用内存诊断工具排查内存相关问题;2. JVM 的招牌-jvm.zip

    Java虚拟机(JVM)是Java程序运行的基础,它负责解析和执行字节码,提供了一个与硬件平台无关的运行环境。了解JVM内存结构及其功能对于优化Java应用程序的性能和排查内存问题至关重要。 首先,我们来详细探讨JVM的...

    实战JAVA虚拟机 JVM故障诊断与性能优化

    JDK提供了一系列强大的诊断工具,如jconsole、jvisualvm、jmap、jhat等,它们可以帮助我们查看JVM状态、分析内存泄漏、生成堆转储文件等。熟练运用这些工具,可以迅速定位和解决问题。 六、性能监控与调优 性能监控...

    实战Java虚拟机 JVM故障诊断与性能优化 葛一鸣

    《实战Java虚拟机 JVM故障诊断与性能优化》是由葛一鸣编著的一本专业书籍,主要探讨了如何在实际工作中解决Java虚拟机(JVM)的相关问题,以及如何进行性能调优。书中涵盖了许多关键的知识点,让我们一一展开讨论。 ...

    java_jvm.zip_java

    JDK提供了一系列工具,如jconsole、jvisualvm、jmap、jhat等,用于监控JVM的运行状态,诊断内存泄漏、性能瓶颈等问题。 总之,Java_jvm.zip_java这个资料包将带你深入了解JVM的方方面面,为你的底层Java开发打下...

    jvm瓶颈定位 java jvm 学习

    Java虚拟机(JVM)是Java开发中的核心组成部分,它负责执行字节码,管理内存,以及优化程序性能。在Java应用的运行过程中,如果出现性能问题,JVM瓶颈定位就显得至关重要。本文将深入探讨如何理解和解决Java JVM的...

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

    JVM性能调优监控工具jps、jstack、jmap、jhat、...jps、jstack、jmap、jhat、jstat 等 JVM 性能调优监控工具对于 Java 程序员来说是必备的,能够帮助我们解决各种 JVM 性能问题,提高 Java 应用程序的性能和稳定性。

    JDK12-java-se-monitoring-and-management-guide.pdf

    这涉及到使用JDK自带的工具如`jstat`、`jmap`、`jhat`和`jfr`(Java飞行记录器)等。 4. **垃圾回收**:垃圾回收是Java性能管理的重要方面,指南提供了关于不同垃圾收集器的详细信息,如G1、Shenandoah、ZGC等,...

Global site tag (gtag.js) - Google Analytics