How to use jmap command in Java?
Introduction to the jmap command
jmap (Java Virtual Machine Memory Map) is a command line tool provided by the JDK that can generate a heap dump snapshot dump file of the Java virtual machine. In addition, the jmap command can also view detailed information about the finalize execution queue, Java heap and method area, such as space usage, what garbage collector is currently used, generation status, etc.
Like the jinfo command, there are still some restrictions on its use on Windows systems. In Windows systems without dbgeng.dll
, the debugging tools for Windows must be installed for the jinfo command to work properly, and the PATH environment variable should contain the location of jvm.dll.
jmap command parameters
Command syntax:
jmap [options] pid
Command parameter description:
option
: Optional parameters of the jmap command. If this parameter is not specified, the jinfo command will display the memory image information of the Java virtual machine process, as shown below:
pid
: To print configuration information The process ID of the Java virtual machine.
To get a list of running Java virtual machine processes, you can use the ps command (in Linux systems) or the tasklist command (in Windows systems), if the Java virtual machine process is not running in a separate docker instance , you can use the jps command.
option
What are the parameters? Let's take a look.
-heap
Displays the following information of the Java heap:
Information of the specified garbage collection algorithm, including the name of the garbage collection algorithm and the garbage Details of the recycling algorithm.
Heap configuration information may be specified by command line options, or selected by the Java virtual machine based on the server configuration.
Heap memory space usage information, including generation status, total capacity, used memory, and available memory of each generation. If a generation is further subdivided (for example, the young generation), contains memory usage information for the subdivided space.
For example:
-histo[:live]
Displays the statistical information of objects in the Java heap, Including: number of objects, occupied memory size (unit: bytes) and fully qualified name of the class. For example:
#To get the size of an object, divide its total size by the number of that object type. If the live
parameter is specified, only live objects are counted. For example:
-clstats
Displays the statistics of the class loader in the metaspace in the Java heap, including:
class_loader: When When the Java virtual machine is running, the address of the class loader object
classes: the number of loaded classes
bytes: the number of bytes of metadata of all classes loaded by the class loader
parent_loader: parent The address of the class loader object, if not shown null
.
alive: An indicator of whether the class loader object is alive or not, indicating whether the class loader object will be garbage collected.
type: The class name of the class loader.
For example:
-finalizerinfo
Displays the objects waiting in the F-Queue for the Finalizer thread to execute the finalize method. For example:
-dump:[live,]format=b,file=
Generate a heap dump snapshot dump file of the Java virtual machine. The specific instructions are as follows:
live
The parameter is optional. If specified, only the active objects in the heap will be dumped; if not specified, the heap will be dumped. all objects in .format=b
means dumping the Java heap memory in hprof binary format.file=<filename></filename>
is used to specify the file name of the snapshot dump file.
For example:
-F
Force mode. If the specified pid does not respond, it can be used together with -dump
or -histo
. In this mode, the live parameter is not supported. For example:
-h and -help
display the help information of the jinfo command.
The above is the detailed content of How to use jmap command in Java?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Guide to Square Root in Java. Here we discuss how Square Root works in Java with example and its code implementation respectively.

Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Guide to the Armstrong Number in Java. Here we discuss an introduction to Armstrong's number in java along with some of the code.

Guide to Random Number Generator in Java. Here we discuss Functions in Java with examples and two different Generators with ther examples.

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is
