前言
jmap(Java Memory Map)是Java虚拟机(JVM)提供的一个工具,它可以用来打印给定Java进程(指定的进程ID或核心文件)的内存映射,或者生成堆转储文件(heap dump file)。堆转储文件是一个包含Java堆内存快照的文件,可以用来分析堆内存使用情况,查找内存泄漏等问题。
使用jmap:
Windows系统:打开命令提示符(cmd),输入jmap [option] 。
1、jmap --heap 12612(查看进程 ID 为 12612的 JVM 的堆内存使用情况) 。
当你运行这个命令时,它会输出以下关于堆内存的详细信息:
Heap Configuration:堆内存的配置信息,包括堆的初始大小(Heap initial)、最大大小(Heap max)以及新生代和老年代的大小。
Heap Usage:堆内存的使用情况,显示当前使用的堆内存大小(Used)、提交的堆内存大小(Committed)以及最大可用的堆内存大小(Max)。
PS Young Generation:年轻代(也称为新生代)的详细信息,包括 Eden 空间、Survivor 0 空间和 Survivor 1 空间的容量(capacity)、已使用空间(used)等。
PS Old Generation:老年代的详细信息,包括老年代的容量(capacity)和已使用空间(used)。
2、
jmap -dump:live,format=b,file=d://myjmapfile.txt 12612(生成堆快照文件(myjmapfile.txt)存储到d盘目录下 )。
3、
jmap -finalizerinfo 12612(查看进程 ID 为 12612的 JVM 的堆内存等待回收的对象 )。