jmap(Java Virtual Machine 메모리 맵)은 JDK에서 제공하는 명령줄 도구로, Java 가상 머신의 힙 덤프 스냅샷 덤프 파일을 생성할 수 있습니다. 또한 jmap 명령은 공간 사용량, 현재 사용되는 가비지 수집기, 생성 상태 등과 같은 실행 완료 대기열, Java 힙 및 메서드 영역에 대한 자세한 정보도 볼 수 있습니다.
jinfo 명령과 마찬가지로 Windows 시스템에서의 사용에는 여전히 몇 가지 제한 사항이 있습니다. dbgeng.dll
이 없는 Windows 시스템에서 jinfo 명령이 제대로 작동하려면 Windows용 디버깅 도구를 설치해야 하며 PATH 환경 변수에 jvm.dll의 위치가 포함되어야 합니다. dbgeng.dll
的Windows系统中,必须安装用于Windows的调试工具才能使jinfo命令正常工作,PATH环境变量应该包含jvm.dll的位置。
命令语法:
jmap [options] pid
命令参数说明:
option
:jmap命令的可选参数。如果没有指定这个参数,jinfo命令会显示Java虚拟机进程的内存映像信息,如下图:
pid
:要打印配置信息的Java虚拟机的进程ID。
想要要获取运行的Java虚拟机进程的列表,可以使用ps命令(Linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独的docker实例中运行,可以使用jps命令。
option
都有哪些参数呢?我们来看一下。
显示Java堆的如下信息:
被指定的垃圾回收算法的信息,包括垃圾回收算法的名称和垃圾回收算法的详细信息。
堆的配置信息,可能是由命令行选项指定,或者由Java虚拟机根据服务器配置选择的。
堆的内存空间使用信息,包括分代情况,每个代的总容量、已使用内存、可使用内存。如果某一代被继续细分(例如,年轻代),则包含细分的空间的内存使用信息。
比如:
显示Java堆中对象的统计信息,包括:对象数量、占用内存大小(单位:字节)和类的完全限定名。比如:
要获得某个对象的大小,可以将其总大小除以该对象类型的数量。如果指定了live
参数,则只计算活动的对象。比如:
显示Java堆中元空间的类加载器的统计信息,包括:
class_loader:当Java虚拟机运行时,类加载器对象的地址
classes:已加载类的数量
bytes:该类加载器加载的所有类的元数据所占的字节数
parent_loader:父类加载器对象的地址,如果没有显示null
。
alive:是否存活的标识,表示类加载器对象是否将被垃圾回收。
type:该类加载器的类名。
比如:
显示在F-Queue中等待Finalizer线程执行finalize方法的对象。比如:
生成Java虚拟机的堆转储快照dump文件。具体说明如下:
live
参数是可选的,如果指定,则只转储堆中的活动对象;如果没有指定,则转储堆中的所有对象。
format=b
表示以hprof二进制格式转储Java堆的内存。
file=<filename></filename>
用于指定快照dump文件的文件名。
比如:
强制模式。如果指定的pid没有响应,可以配合-dump
或-histo
명령 구문:
rrreeeoption
: jmap 명령의 선택적 매개변수입니다. 이 매개변수를 지정하지 않으면 jinfo 명령은 아래와 같이 Java Virtual Machine 프로세스의 메모리 이미지 정보를 표시합니다.
pid
: 구성 정보를 인쇄하기 위한 Java 가상 머신의 프로세스 ID입니다. 🎜🎜실행 중인 JVM(Java Virtual Machine) 프로세스 목록을 얻으려면 ps 명령(Linux 시스템) 또는 tasklist 명령(Windows 시스템)을 사용할 수 있습니다. JVM(Java Virtual Machine) 프로세스가 별도의 Docker 인스턴스에서 실행되고 있지 않은 경우 jps 주문을 사용할 수 있습니다. 🎜🎜옵션
의 매개변수는 무엇인가요? 한 번 보자. 🎜🎜-heap🎜🎜Java 힙에 대한 다음 정보를 표시합니다. 🎜live
매개변수가 지정된 경우 라이브 개체만 계산됩니다. 예: 🎜🎜🎜🎜-clstats 🎜 🎜다음을 포함하여 Java 힙의 메타공간에 있는 클래스 로더의 통계를 표시합니다. 🎜🎜class_loader: Java 가상 머신이 실행 중일 때 클래스 로더 객체의 주소null
가 표시되지 않는 경우 상위 클래스 로더 객체의 주소입니다. live
매개변수를 지정하면 힙의 활성 개체만 덤프됩니다. 그렇지 않은 경우 지정되면 힙의 모든 개체가 덤프됩니다. 🎜format=b
는 Java 힙 메모리를 hprof 바이너리 형식으로 덤프하는 것을 의미합니다. 🎜file=<filename></filename>
은 스냅샷 덤프 파일의 파일 이름을 지정하는 데 사용됩니다. 🎜-dump
또는 -histo
와 함께 사용할 수 있습니다. 이 모드에서는 라이브 매개변수가 지원되지 않습니다. 예: 🎜🎜🎜🎜🎜-h 및 -help🎜🎜는 jinfo 명령에 대한 도움말 정보를 표시합니다. 🎜위 내용은 Java에서 jmap 명령을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!