Cara mencetak maklumat tindanan ke fail hprof
Jalankan atur cara untuk menambah parameter VM:
-XX:+HeapDumpOnOutOfMemoryError # 会打印出现内存溢出异常时,Dump出当前内存堆转存快找以便分析
Langkah 1:
Dalam antara muka baris arahan, laksanakan arahan berikut, dengan java_pid73912.hprof ialah nama fail
jhat java_pid73912.hprof
Melaksanakan arahan akan mengeluarkan
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.
Apabila anda melihat Server is ready.
, anda boleh mengaksesnya melalui penyemak imbas alamat ip + port saya di sini, jadi ia adalah localhost:7000
Mengklik Show instance counts for all classes (including platform)
akan memaparkan maklumat tentang kelas yang termasuk platform
Mengklik Show instance counts for all classes (excluding platform)
akan memaparkan maklumat tentang semua kelas yang tidak termasuk platform Maklumat
Anda dapat melihat bahawa kelas yang paling banyak menggunakan ruang di sini ialah class com.geniu.book.deepinJVM.chapter2.TestHeapOOM$OOMObject
dengan lebih daripada 800,000 contoh.
Dengan cara ini, anda boleh menganalisis objek dalam ingatan dan menganalisis situasi tidak normal apabila limpahan memori berlaku.
Cadangan lain:
1) Gunakan pemalam idea JProfiler
2) Alat minidump_stackwalk boleh membaca fail buang
Atas ialah kandungan terperinci Bagaimana untuk menganalisis fail Java heap dump (hprof) pada platform Mac?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!