hprof 파일에 스택 정보를 인쇄하는 방법
프로그램을 실행하여 VM 매개변수를 추가하세요.
-XX:+HeapDumpOnOutOfMemoryError # 会打印出现内存溢出异常时,Dump出当前内存堆转存快找以便分析
1단계:
명령줄 인터페이스에서 다음을 실행하세요. 여기서 java_pid73912.hprof 파일 이름
jhat java_pid73912.hprof
에 대한 명령을 실행하면
Reading from java_pid73912.hprof...Dump file created Thu Apr 08 22:18:08 CST 2021Snapshot read, resolving...Resolving 818890 objects...Chasing references, expect 163 dots...................................................................................................................................................................Eliminating duplicate references...................................................................................................................................................................Snapshot resolved.Started HTTP server on port 7000Server is ready.
이 출력됩니다. Server is Ready.
가 표시되면 IP + 포트 주소를 통해 액세스할 수 있습니다. 저는 여기 로컬이므로 localhost:7000
Server is ready.
之后,可以通过 ip + port 地址浏览器访问,我这里是本地,所以是 localhost:7000
点击Show instance counts for all classes (including platform)
会展示包含平台的类的的信息
点击Show instance counts for all classes (excluding platform)
会展示不包含平台的所有类的信息
可以看到我这里占用空间最多的类是 class com.geniu.book.deepinJVM.chapter2.TestHeapOOM$OOMObject
플랫폼을 포함한 클래스에 대한 정보를 표시하려면 모든 클래스(플랫폼 포함)에 대한 인스턴스 수 표시
를 클릭하세요
표시를 클릭하세요. 모든 클래스(플랫폼 제외)에 대한 인스턴스 수 code>는 플랫폼을 포함하지 않는 모든 클래스에 대한 정보를 표시합니다
🎜여기서 가장 많은 공간을 차지하는 클래스가class com.geniu.book.deepinJVM임을 알 수 있습니다. .chapter2.TestHeapOOM$OOMObject
에는 인스턴스가 800,000개가 넘습니다. 🎜🎜🎜이렇게 하면 메모리에 있는 객체를 분석하고, 메모리 오버플로가 발생했을 때 비정상적인 상황을 분석할 수 있습니다. 🎜🎜🎜기타 제안 사항: 🎜🎜1) 덤프 파일을 읽을 수 있는 아이디어 플러그인 JProfiler🎜🎜2) minidump_stackwalk 도구를 사용하세요🎜위 내용은 Mac 플랫폼에서 Java 힙 덤프(hprof) 파일을 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!