Java Tools Tutorials - Herong's Tutorial Notes - Version 5.32, by Dr. Herong Yang
Taking Heap Dump to See Memory Usages
This section provides a tutorial example on how to take a heap dump with Java VisualVM to get a snapshot of all objects in the heap with their contents.
What Is Heap Dump? A heap dump is a snapshot of all objects in the heap memory of the JVM. Heap dump helps you to understand what's going on in the JVM in terms of objects and memory usage. For example, if your Java application is having a high memory usage, you can take heap dump to find out which types of objects are using more memory and why they are not freed by the garbage collectors.
Java VisualVM can help you to create a heap dump file at any time.
1. Start Java VisualVM and connect to the running JVM of LongSleep.java.
2. Click on the Monitor tab. The monitor screen is displayed.
3. Click on the "Heap Dump" button. Java VisualVM will start to create a heap dump. It may make a long time and use large disk space, if your application is using a large memory size.
4. When the heap dump is created, Java VisualVM will show its basic info first:
File: C:\Users\herong\AppData\Local\Temp\visualvm.dat\localhost_2724 \heapdump-1396226543427.hprof File size: 5.3 MB Total bytes: 2,960,505 Total classes: 1,434 Total instances: 58,894 Classloaders: 65 GC roots: 1,290 Number of objects pending for finalization: 0
5. Right-mouse click on "[heapdump]..." under "LongSleep..." in the Application panel. Then select "Save As..." to save the heap dump to a file, heap_dump.hprof, for later use.
Note that a heap dump is a binary file. You need to use Java VisualVM or other heap dump tools to open it.
Last update: 2015.
Table of Contents
'javac' - The Java Program Compiler
'java' - The Java Program Launcher
'jconsole' - Java Monitoring and Management Console
'jstat' - JVM Statistics Monitoring Tool
►jvisualvm (Java VisualVM) - JVM Visual Tool
What Is jvisualvm (Java VisualVM)?
jvisualvm Command to Open Dump Files or Conections
Connecting Java VisualVM to a Local JVM Process
Monitoring Usgaes of CPU, Heap, Classes and Threads
Monitoring Thread Status as Timeline
Taking Thread Dump to See Thread Stack Traces
►Taking Heap Dump to See Memory Usages
Connecting to Remote JVM Processes
Avaible Plugins and Installation
'javap' - The Java Class File Disassembler
'keytool' - Public Key Certificate Tool