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的原创文章,请关注公众号"汪子熙":
相关推荐
本篇文章将详细介绍Java开发工具包(JDK)中的一些重要监控和故障处理工具,这些工具可以帮助开发者识别和解决生产环境中的内存溢出问题,进而提升应用程序的性能和稳定性。 首先,我们来了解JDK提供的几个监控和...
9. **jmap内存分析工具**:帮助开发者分析Java进程的内存使用,包括堆内存和持久代的状况。 10. **jhat内存分析服务器**:与jmap配合使用,对heap dump文件进行分析,查找内存泄漏等问题。 11. **jstack线程堆栈...
9. **性能监控和诊断工具**:JDK 1.6提供了诸如jconsole、jmap、jhat等工具,帮助开发者监控和分析应用程序的性能,定位和解决问题。 10. **网络编程**:JDK 1.6改进了网络编程接口,提供了一套强大的Socket和...
此外,JDK还包括了大量实用工具,如javadoc用于生成API文档,jdb是Java的调试器,jconsole提供了一个图形界面来监控Java应用的性能和内存使用,还有jmap、jhat等用于更深入的内存分析。 配置Java开发环境通常涉及...
在Java开发过程中,掌握JDK内置工具是提升效率和优化代码的关键步骤。本文将深入探讨六个对于普通开发者极具价值的JDK内置工具,这些工具在Java开发中的应用广泛且实用,能够帮助开发者提升编程技能,优化工作流程。...
此外,Java JDK还包含了一些其他工具,例如Javadoc用于生成API文档,JConsole用于监视Java应用程序的性能,jhat用于分析堆转储,以及jmap、jstack等用于调试和性能分析的工具。这些工具对于开发者来说是非常宝贵的...
6. **Java性能分析器** (jmap, jhat, jstack, jinfo):这些工具用于诊断和优化Java应用的内存使用、线程状态和配置信息。 7. **Java Mission Control** (JMC):一套高级的性能分析和故障排查工具,适用于复杂的生产...
JDK(Java Development Kit)是Java程序员的核心工具,包含了JRE(Java Runtime Environment),编译器,调试器,以及其他用于构建和测试Java应用程序的工具。 1. **Java语言基础**: Java是一种跨平台的、面向对象...
Java JDK 1.7.0_79是Oracle公司发布的Java Development Kit的一个重要版本,它为Java程序员提供了必要的工具和库,以便进行Java应用程序的开发、编译、调试和运行。这个版本尤其对那些需要在Java 7环境下工作的...
标题中的“jdk6新强工具使用,触摸JAVA内存管理机制”指的是在Java Development Kit (JDK) 6版本中引入的一些强大的性能分析和诊断工具,这些工具帮助开发者深入理解Java应用程序的内存使用情况,从而优化程序性能。...
9. **内存分析工具**:JDK 1.6提供了一些内存分析工具,如jmap、jhat等,帮助开发者诊断和解决内存泄漏问题。 10. **并发工具**:Java并发包(java.util.concurrent)得到进一步扩展,添加了如Phaser、...
6. **Java性能分析工具**(jconsole, jmap, jhat等):帮助开发者监控和分析Java应用的性能。 **JRE** 是运行Java应用程序所必需的环境,它包含了Java虚拟机(JVM)、Java核心类库和其他支持文件。JRE不包含开发...
Java开发工具包(Java Development Kit,简称JDK)是用于编写和运行Java应用程序的重要软件包。JDK 8u311是Oracle公司发布的一个官方版本,专为Windows 64位操作系统设计。这个版本包含了Java运行时环境(Java ...
- **Java性能分析器 (jmap, jhat)**:帮助分析内存使用和堆转储。 - **其他工具**:如jconsole、jvisualvm等,用于监控和管理Java应用程序。 **2. JDK 1.7.0_79的特性** - **改进的安全性**:此版本可能包含了针对...
7. **其他实用工具**:如jconsole(监控JVM性能)、jmap(内存映射工具)、jhat(堆分析工具)等,这些工具帮助开发者优化和诊断Java应用程序。 在"java JDK 实例开发宝典"中,你可能会遇到一系列精心设计的示例,...
6. **Java性能分析工具**(如jmap, jhat, jconsole等):这些工具用于监控和分析Java应用的内存使用、线程状态等,优化程序性能。 7. **Java Native Interface (JNI)**:允许Java代码和其他语言写的代码进行交互,...
4. **Java Development Tools(JDK工具)**: 包括用于性能分析、内存检测、JAR打包、文档生成等的工具,如javadoc、jps、jmap、jhat等。 5. **设置JAVA_HOME环境变量**: 安装JDK后,为了使得系统能够正确识别并调用...
7. **开发工具**(如jconsole, jmap, jhat等):这些工具提供对Java应用程序的监控、内存分析等功能,对于性能优化和问题排查非常有用。 在Eclipse中配置JDK的过程通常包括以下几个步骤: 1. **安装JDK**:首先需要...
JDK1.8还包含了一些关键的工具,如javac用于编译Java源代码,javadoc用于生成API文档,jdb是Java的调试工具,jconsole用于监视JVM的性能,而jmap和jhat则帮助开发者分析堆内存。这些工具对于理解和优化Java程序至关...