`
JerryWang_SAP
  • 浏览: 1030995 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Java JDK目录下的jmap和jhat工具的使用方式

阅读更多

Suppose you have a running Java process and you would like to inspect its running status, for example how many object instance are created or memory consumption status, you can use some standard tool provided by JDK. This blog is written based on JDK 1.8. The sample code I am using to simulate a endless running process:

package jmap;

class Tool{
    private int count = 0;
    public void Run() throws InterruptedException{
        while(true){
            System.out.println("Hello: " + this.count++);
            Thread.sleep(5000);
        }
    }
}
public class JMapTest {

    public static void main(String[] args) throws InterruptedException {
        Tool tool = new Tool();
        tool.Run();
    }
}

(1) First get process id found in task manager: 15392

 

 

(2) use command line jmap -dump:format=b,file=c:\temp\heapstatus.bin 15392 jmap is a standard tool provided by JDK in this folder in my laptop:

 

 

heap bin file is generated now:

 

 

(3) Use another tool jhat to parse the bin file: jhat c:\temp\heapstatus.bin

 

 

Then access localhost:7000 in browser:

 

 

Click hyperlink class jmap.Tool, now I can find out that the instance of my tool class @0x7166babd8 has member attribute count with value 49.

 

 

(4) There is a plugin in Eclipse MAT – Memory Analyzer Tool which can achieve the same. Once plugin is installed, you can make them visible in “Show View”:

 

 

Drag your bin file into the view and the heap file will be parsed automatically. Click “Find object by address”:

 

Type address of object instance you want to inspect:

 

 

You can get the same result as you get previously in localhost:7000

 

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
0
分享到:
评论

相关推荐

    java JDK帮助文档

    6. **Java性能分析器** (jmap, jhat, jstack, jinfo):这些工具用于诊断和优化Java应用的内存使用、线程状态和配置信息。 7. **Java Mission Control** (JMC):一套高级的性能分析和故障排查工具,适用于复杂的生产...

    java jdk帮助工具

    Java JDK(Java Development Kit)是Java编程语言的核心组件,它包含了一整套用于开发和运行Java应用程序的工具。这个压缩包文件"java jdk"很可能包含了JDK的完整安装包或者帮助文档,对于学习和理解Java语言至关...

    java64位jdk

    此外,Java JDK还包含了一些其他工具,例如Javadoc用于生成API文档,JConsole用于监视Java应用程序的性能,jhat用于分析堆转储,以及jmap、jstack等用于调试和性能分析的工具。这些工具对于开发者来说是非常宝贵的...

    java JDK 实例

    7. **其他实用工具**:如jconsole(监控JVM性能)、jmap(内存映射工具)、jhat(堆分析工具)等,这些工具帮助开发者优化和诊断Java应用程序。 在"java JDK 实例开发宝典"中,你可能会遇到一系列精心设计的示例,...

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

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

    java jdk1.7.0_79

    Java JDK 1.7.0_79是Oracle公司发布的Java Development Kit的一个重要版本,它为Java程序员提供了必要的工具和库,以便进行Java应用程序的开发、编译、调试和运行。这个版本尤其对那些需要在Java 7环境下工作的...

    java jdk1.8

    - JDK 1.8包含了`javadoc`工具用于生成API文档,`jconsole`用于监视Java应用程序的性能,`jmap`、`jhat`等用于内存分析和故障诊断。 6. **安全性**: - Java 8增强了安全性和隐私控制,例如更新了SSL/TLS协议,...

    安装java JDK教程.rar

    JDK提供的工具如`javac`编译器用于将源代码编译为字节码,`javadoc`用于生成API文档,`jconsole`用于监控Java应用程序的性能,`jmap`和`jhat`用于分析堆内存,`jdb`是Java的调试器,还有许多其他工具供开发者使用。...

    jdk1.6好用的jdk工具

    9. **性能监控和诊断工具**:JDK 1.6提供了诸如jconsole、jmap、jhat等工具,帮助开发者监控和分析应用程序的性能,定位和解决问题。 10. **网络编程**:JDK 1.6改进了网络编程接口,提供了一套强大的Socket和...

    javaJDK8.exe

    - **jmap**和**jhat**:内存分析工具,用于分析堆内存和查找内存泄漏。 - **jstack**:用于生成线程堆栈跟踪,帮助分析死锁等问题。 - **jinfo**:配置信息工具,查看和修改JVM配置参数。 - **jps**:Java进程...

    Java jdk.zip

    5. **开发工具**:如`jar`命令用于创建和管理Java归档(JAR)文件,`javadoc`用于生成API文档,`jmap`和`jhat`用于分析内存使用情况,`jconsole`和`jvisualvm`提供图形化监控工具等。 6. **Java标准版(Java SE)**...

    java jdk+script中文帮助文档

    JDK还包含了一个名为`jconsole`的性能监视工具,以及`jmap`、`jhat`等用于内存管理和故障诊断的工具。 Scripting语言则是在编程领域中扮演着快速原型开发、自动化任务和网页交互等角色的重要工具。例如,JavaScript...

    JDK整合包,直接丢在目录,设置环境变量即可使用

    6. **JDK还包含各种开发和调试工具**,如JConsole(监视Java应用程序的工具)、VisualVM(多合一的Java性能分析工具)以及jinfo、jmap、jhat等。 设置环境变量是使用JDK的关键步骤。通常需要配置三个环境变量: - *...

    jdk1.7.0_13

    此外,JDK还包括了大量实用工具,如javadoc用于生成API文档,jdb是Java的调试器,jconsole提供了一个图形界面来监控Java应用的性能和内存使用,还有jmap、jhat等用于更深入的内存分析。 配置Java开发环境通常涉及...

    JAVA jdk-8u181-windows-x64.rar

    8. **其他开发工具**:如jconsole(用于监视JVM的性能),jmap(内存映射工具),jhat(堆分析工具)等,这些都是Java开发和优化的重要辅助工具。 在JDK 8u181中,值得注意的新特性包括Lambda表达式、Stream API、...

    jdk1.7.0_79.jdk.zip

    1. **解压文件**:将"jdk1.7.0_79.jdk.zip"解压到你希望的位置,例如`/Library/Java/JavaVirtualMachines`目录下。 2. **配置环境变量**:为了使得系统能够识别和使用JDK,你需要编辑`~/.bash_profile`或`~/.zshrc`...

    官网版jdk-8u311-windows-x64.zip

    Java开发工具包(Java Development Kit,简称JDK)是用于编写和运行Java应用程序的重要软件包。JDK 8u311是Oracle公司发布的一个官方版本,专为Windows 64位操作系统设计。这个版本包含了Java运行时环境(Java ...

    Java开发环境jdk1.8

    JDK1.8还包含了一些关键的工具,如javac用于编译Java源代码,javadoc用于生成API文档,jdb是Java的调试工具,jconsole用于监视JVM的性能,而jmap和jhat则帮助开发者分析堆内存。这些工具对于理解和优化Java程序至关...

    jdk8 java8 linux版 jdk-8u162-linux-x64.tar.zip

    Java开发工具包(Java Development Kit,简称JDK)是Oracle公司发布的用于开发和运行Java应用程序的重要工具集。...通过这个JDK 8u162的Linux版本,开发者可以在Linux环境下充分利用这些新特性和工具进行开发工作。

Global site tag (gtag.js) - Google Analytics