Home  >  Article  >  Java  >  How to use jmap command in Java?

How to use jmap command in Java?

WBOY
WBOYforward
2023-04-20 22:52:061622browse

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:

How to use jmap command in Java?

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.

optionWhat 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:

How to use jmap command in Java?

-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:

How to use jmap command in Java?

#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:

How to use jmap command in Java?

-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:

How to use jmap command in Java?

-finalizerinfo

Displays the objects waiting in the F-Queue for the Finalizer thread to execute the finalize method. For example:

How to use jmap command in Java?

-dump:[live,]format=b,file=

Generate a heap dump snapshot dump file of the Java virtual machine. The specific instructions are as follows:

  • liveThe 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:

How to use jmap command in Java?

-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:

How to use jmap command in Java?

-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!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete