สารบัญ:

ฉันจะดูฮีพดัมพ์ได้อย่างไร
ฉันจะดูฮีพดัมพ์ได้อย่างไร

วีดีโอ: ฉันจะดูฮีพดัมพ์ได้อย่างไร

วีดีโอ: ฉันจะดูฮีพดัมพ์ได้อย่างไร
วีดีโอ: แปลเพลง Calm Down - Rema ft. Selena Gomez 2024, อาจ
Anonim

หากคุณมี กองขยะ ไฟล์ที่บันทึกไว้ในระบบโลคัลของคุณ คุณสามารถเปิดไฟล์ใน Java VisualVM โดยเลือก ไฟล์ > โหลด จากเมนูหลัก Java VisualVM สามารถเปิดได้ กองขยะ บันทึกไว้ใน. รูปแบบไฟล์.hprof เมื่อคุณเปิดไฟล์ที่บันทึกไว้ กองขยะ , NS กองขยะ เปิดเป็นแท็บในหน้าต่างหลัก

ในทำนองเดียวกัน ฉันจะสร้างฮีพดัมพ์ได้อย่างไร

มีหลายวิธีในการสร้าง java heap dump:

  1. ใช้ตัวเลือก jmap -dump เพื่อรับ heap dump ที่รันไทม์
  2. ใช้ตัวเลือก jconsole เพื่อรับฮีพดัมพ์ผ่าน HotSpotDiagnosticMXBean ที่รันไทม์
  3. ฮีพดัมพ์จะถูกสร้างขึ้นเมื่อมีการส่ง OutOfMemoryError โดยระบุตัวเลือก -XX:+HeapDumpOnOutOfMemoryError VM
  4. ใช้ hprof

รู้ยัง ฮีปดัมพ์คืออะไร? NS กองขยะ เป็นสแน็ปช็อตของหน่วยความจำของกระบวนการ Java™ สแน็ปช็อตมีข้อมูลเกี่ยวกับอ็อบเจ็กต์ Java และคลาสในไฟล์ กอง ในขณะที่สแนปชอตถูกเรียก ตัวโหลดคลาส ชื่อ ซูเปอร์คลาส และฟิลด์สแตติก รากเก็บขยะ. อ็อบเจ็กต์ที่กำหนดให้เข้าถึงได้โดย JVM

ในที่นี้ คุณจะวิเคราะห์หน่วยความจำรั่วสำหรับฮีพดัมพ์ได้อย่างไร

เพื่อติดตาม a หน่วยความจำรั่ว คุณจะต้องมี " กองขยะ " พร้อมสรุปรายการสดในกระบวนการรั่ว เพื่อบันทึก ทิ้ง ให้รัน jps ก่อนเพื่อค้นหา PID ของกระบวนการ จากนั้นรัน jmap - ทิ้ง :live, format=b, file=(dumpfile) (pid).

เหตุใดจึงสร้างฮีพดัมพ์

JVM สร้าง NS กองขยะ ไฟล์ในเส้นทางไฟล์ที่ระบุ บางครั้งเราอาจต้องการ กองขยะ ตามความต้องการ เพื่อแก้ไขปัญหาการใช้หน่วยความจำ เราต้องการ กองขยะ . หากคุณไม่ได้ระบุ HeapDumpPath ดังนั้น JVM สร้าง ไฟล์ที่กระบวนการ JAVA กำลังทำงานอยู่