สารบัญ:

อะไรทำให้ Java heap dump?
อะไรทำให้ Java heap dump?

วีดีโอ: อะไรทำให้ Java heap dump?

วีดีโอ: อะไรทำให้ Java heap dump?
วีดีโอ: Heap Dump - Java VisialVM - OutOfMemoryError - Java 2024, พฤศจิกายน
Anonim

ตรวจหาสาเหตุที่แท้จริงในฮีพดัมพ์ใน java

  • NS สาเหตุ เป็นอะไรก็ได้ที่ใช้หน่วยความจำ (ซึ่งมีมาก) สิ่งที่คุณกำลังมองหาคือวัตถุที่ใช้หน่วยความจำมากกว่าที่คุณคิด
  • หากแอปพลิเคชันทำงานอย่างถูกต้อง สาเหตุ เป็นไปได้ว่าสูงสุด กอง ขนาดต่ำเกินไป –

ยังถามอีกว่า คุณจะเอา Java heap dump อย่างไร?

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

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

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

นอกจากนี้ Java heap dump คืออะไร?

NS กองขยะ เป็นภาพความทรงจำของ a Java ™ กระบวนการ สแนปชอตประกอบด้วยข้อมูลเกี่ยวกับ Java วัตถุและคลาสใน กอง ในขณะที่สแนปชอตถูกเรียก เนื่องจากมีรูปแบบที่แตกต่างกันสำหรับการคงข้อมูลนี้ ข้อมูลที่ให้ไว้จึงอาจมีความแตกต่างกัน

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

เปิด กองขยะ ใน Eclipse Memory Analyzer โดยใช้ตัวเลือก File Open กองขยะ . ขั้นแรก จะแจ้งให้คุณสร้างรายงานผู้ต้องสงสัยรั่ว ผู้ใช้สามารถสร้างหรือข้ามได้ แท็บ "ภาพรวม" ของตัววิเคราะห์หน่วยความจำจะแสดงขนาดรวมของ กอง และแผนภูมิวงกลมขนาดวัตถุ

แนะนำ: