สารบัญ:
วีดีโอ: ฉันจะดูฮีพดัมพ์ได้อย่างไร
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
หากคุณมี กองขยะ ไฟล์ที่บันทึกไว้ในระบบโลคัลของคุณ คุณสามารถเปิดไฟล์ใน Java VisualVM โดยเลือก ไฟล์ > โหลด จากเมนูหลัก Java VisualVM สามารถเปิดได้ กองขยะ บันทึกไว้ใน. รูปแบบไฟล์.hprof เมื่อคุณเปิดไฟล์ที่บันทึกไว้ กองขยะ , NS กองขยะ เปิดเป็นแท็บในหน้าต่างหลัก
ในทำนองเดียวกัน ฉันจะสร้างฮีพดัมพ์ได้อย่างไร
มีหลายวิธีในการสร้าง java heap dump:
- ใช้ตัวเลือก jmap -dump เพื่อรับ heap dump ที่รันไทม์
- ใช้ตัวเลือก jconsole เพื่อรับฮีพดัมพ์ผ่าน HotSpotDiagnosticMXBean ที่รันไทม์
- ฮีพดัมพ์จะถูกสร้างขึ้นเมื่อมีการส่ง OutOfMemoryError โดยระบุตัวเลือก -XX:+HeapDumpOnOutOfMemoryError VM
- ใช้ hprof
รู้ยัง ฮีปดัมพ์คืออะไร? NS กองขยะ เป็นสแน็ปช็อตของหน่วยความจำของกระบวนการ Java™ สแน็ปช็อตมีข้อมูลเกี่ยวกับอ็อบเจ็กต์ Java และคลาสในไฟล์ กอง ในขณะที่สแนปชอตถูกเรียก ตัวโหลดคลาส ชื่อ ซูเปอร์คลาส และฟิลด์สแตติก รากเก็บขยะ. อ็อบเจ็กต์ที่กำหนดให้เข้าถึงได้โดย JVM
ในที่นี้ คุณจะวิเคราะห์หน่วยความจำรั่วสำหรับฮีพดัมพ์ได้อย่างไร
เพื่อติดตาม a หน่วยความจำรั่ว คุณจะต้องมี " กองขยะ " พร้อมสรุปรายการสดในกระบวนการรั่ว เพื่อบันทึก ทิ้ง ให้รัน jps ก่อนเพื่อค้นหา PID ของกระบวนการ จากนั้นรัน jmap - ทิ้ง :live, format=b, file=(dumpfile) (pid).
เหตุใดจึงสร้างฮีพดัมพ์
JVM สร้าง NS กองขยะ ไฟล์ในเส้นทางไฟล์ที่ระบุ บางครั้งเราอาจต้องการ กองขยะ ตามความต้องการ เพื่อแก้ไขปัญหาการใช้หน่วยความจำ เราต้องการ กองขยะ . หากคุณไม่ได้ระบุ HeapDumpPath ดังนั้น JVM สร้าง ไฟล์ที่กระบวนการ JAVA กำลังทำงานอยู่