`
bit1129
  • 浏览: 1067846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Java命令二】jhat

    博客分类:
  • JVM
 
阅读更多

jhat用于分析使用jmap dump的文件,,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。 jhat默认开启监听端口7000的HTTP服务,jhat是Java Heap Analysis Tool的缩写

1. 用法:

[hadoop@hadoop bin]$ jhat -help

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. For
			  example, -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 should
			  be excluded from the reachableFrom query.
	-baseline <file>: Specify a baseline object dump.  Objects in
			  both heap dumps with the same ID and same class will
			  be marked as not being "new".
	-debug <int>:     Set debug level.
			    0:  No debug output
			    1:  Debug hprof file parsing
			    2:  Debug hprof file parsing, no server
	-version          Report version number
	-h|-help          Print this help and exit
	<file>            The file to read

For 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"

 

2. 产生堆内存dump文件

[hadoop@hadoop bin]$ jmap -dump:file=dump.bin.002 1819
Dumping heap to /home/hadoop/software/jdk1.7.0_67/bin/dump.bin.002 ...
Heap dump file created

 

3. 分析堆内存dump文件

 

提示找到1040038个对象

[hadoop@hadoop bin]$ jhat dump.bin.002 
Reading from dump.bin.002...
Dump file created Fri Feb 27 07:53:21 EST 2015
Snapshot read, resolving...
Resolving 1040038 objects...
Chasing references, expect 208 dots................................................................................................................................................................................................................
Eliminating duplicate references................................................................................................................................................................................................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

 

 

4. UI上查看对象内存使用情况:

在首页底下有如下连接

  • 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 (查询语法点击它自带的连接)

 

 

 

分享到:
评论

相关推荐

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

    3. 启动 jhat 工具:在命令行下输入 jhat 命令,例如 jhat -J-mx512m &lt;堆dump文件路径&gt;,其中 -J-mx512m 是设置 jhat 工具的内存大小。 4. 查看分析结果:使用 jhat 工具分析堆dump文件后,可以在浏览器中访问 ...

    java 2语言命令详解

    `jar` 命令用于创建、提取和更新.jar文件,这是Java的二进制文件格式,用于打包多个类文件和资源。创建一个包含`HelloWorld.class`的.jar文件,你可以使用: ``` jar cvf HelloWorld.jar HelloWorld.class ``` ...

    Java2语言命令详解

    安装后,需要设置`JAVA_HOME`环境变量,指向JDK的安装目录,以便系统能识别Java命令。 二、javac 命令 `javac`是Java的编译器,它将源代码文件(.java)转换为字节码文件(.class)。例如,要编译名为`HelloWorld....

    JAVA命令大全-JVM设置.rar

    这份“JAVA命令大全-JVM设置.rar”压缩包文件包含了关于Java命令行选项以及JVM配置的相关知识。 首先,`JAVA命令大全.doc`可能包含以下内容: 1. **Java启动命令**:`java`和`javac`是最基础的命令,分别用于执行...

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

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

    Java2 语言命令详解

    3. **java命令**: 用于执行Java字节码文件。例如,`java HelloWorld` 运行已编译的HelloWorld类。如果需要指定类路径或主类,可以使用`-cp`或`-classpath`参数。 4. **jar命令**: Java档案工具,用于打包和管理类...

    java2应用命令详解

    Java 2 应用命令详解 在 Java 开发和运行环境中,掌握各种命令行工具是至关重要的。Java 2 应用命令主要指的是用于管理、编译、运行和调试 Java 程序的一系列命令。这些命令使得开发者能够在不同的操作系统上高效地...

    Java Command

    以下是一些重要的Java命令及其详细解释: 1. **java命令**: - 用于运行Java字节码文件(.class)。例如:`java HelloWorld` 运行名为HelloWorld的主类。 - `-cp`或`-classpath`参数指定类路径,用于查找依赖的...

    java-sdk-4.11.0.jar.zip

    3. **Java开发工具**(JDK工具):如`jar`命令用于创建、管理和提取JAR文件,`javadoc`用于生成API文档,`jmap`和`jhat`用于内存分析,以及`jconsole`用于监控Java应用的性能等。 4. **Java API**:这是一个庞大的...

    Java JDK11.0.22.tar.gz下载(Linux)

    解压后,将JDK的路径添加到系统的环境变量`PATH`和`JAVA_HOME`中,以便系统可以在任何目录下识别和执行Java命令。 3. **环境变量配置**: - `JAVA_HOME`: 指向JDK的安装路径,例如:`/usr/local/java/jdk11.0.22` ...

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

    4. **其他开发工具**:OpenJDK 1.8.0还包括其他的开发工具,如`jmap`用于内存映射,`jhat`用于分析堆转储,`jinfo`获取Java配置信息,`jstack`用于查看线程堆栈跟踪,以及`jconsole`图形化监控工具等。这些工具对于...

    java学习资料04

    7. **性能分析命令**:`jps`显示Java进程,`jstat`用于监视JVM统计信息,`jmap`提供内存映射和堆dump,`jhat`分析heap dump,这些工具帮助开发者优化程序性能。 8. **JVM调优**:Java2语言命令详解可能还会涵盖JVM...

    java jdk1.8

    包括`JAVA_HOME`指向JDK的安装目录,`PATH`中添加`%JAVA_HOME%\bin`,确保系统可以从任何地方执行Java命令。 - 验证安装:通过在命令行输入`java -version`和`javac -version`,查看Java和Java编译器的版本信息。 ...

    Java虚拟机调优及问题排查手册.docx

    使用jps命令可以查看当前的Java进程: ``` jps -lm ``` 使用wmic process命令可以查看当前的进程详细信息: ``` wmic process get caption,commandline /value ``` 数据库连接排查 数据库连接排查是指通过各种...

    Linux下启动JAVA

    为了监控Java应用的性能,可以使用`jps`(Java进程状态)列出运行中的Java进程,`jstat`(JVM统计监测工具)查看JVM的统计信息,`jmap`(内存映射工具)生成堆转储,以及`jhat`(堆分析工具)分析堆转储。...

Global site tag (gtag.js) - Google Analytics