CodeBlanks Logo Icon CodeBlanks

Heap dump

jmap ve heap dump ile bellek analizi öğrenirsin.

Heap dump alma

Heap dump, yığındaki canlı nesnelerin anlık görüntüsüdür; .hprof biçiminde kaydedilir. jcmd PID GC.heap_dump dosya.hprof ile ya da -XX:+HeapDumpOnOutOfMemoryError bayrağıyla OOM anında otomatik alınır.

Dump, bellek sızıntılarını bulmak için kullanılır. En çok yer tutan nesneler, tutulan boyut (retained size) ve baskın ağaç (dominator tree) incelenir.

heap dump analizi

Heap dump analizinde tutulan boyut (retained size) önemlidir: bir nesne silinse ne kadar bellek boşalacağını gösterir. Baskın ağaç (dominator tree) en çok belleği tutan nesneleri hiyerarşik sunar.

Analiz araçları: Eclipse MAT sızıntı şüphelilerini önerir, VisualVM canlı izleme yapar, eski jhat ise yerini MAT'e bırakmıştır. Sızıntı bulununca kök referans (GC root) takip edilir.

Uygulama HeapDumper sınıfını yaz

class HeapDumper tanımla; static String dump(int pid, String path) metodu "jcmd " + pid + " GC.heap_dump " + path döndürsün. main içinde System.out.println(dump(1234, "/tmp/heap.hprof")); yazdır.

Başlangıç kodu

Main.java
// HeapDumper sınıfını tanımla: dump metodu jcmd komutu üretsin

// main: 1234 PID için heap dump komutunu yazdır

Örnek çözüm

Main.java
class HeapDumper {
    static String dump(int pid, String path) {
        return "jcmd " + pid + " GC.heap_dump " + path;
    }
    public static void main(String[] args) {
        System.out.println(dump(1234, "/tmp/heap.hprof"));
    }
}

Beklenen çıktı

jcmd 1234 GC.heap_dump /tmp/heap.hprof

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Heap dump neyi tutar?

  • Yığın izlerini
  • Thread durumunu
  • Canlı nesneleri Doğru cevap
  • CPU örneklemeleri

Açıklama: Heap dump yığındaki canlı nesnelerin görüntüsüdür.

2 OOM bayrağını tamamla

Soru
-XX:+____ -XX:HeapDumpPath=/tmp/dump.hprof
Cevap
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/dump.hprof

Açıklama: Bu bayrak OOM anında heap dump alır.

3 analiz araçlarını eşleştir

Kavram Anlamı
Eclipse MAT Sızıntı şüphelisi bulur
VisualVM Canlı izleme
jcmd Dump alır
retained size Tutulan bellek

Uzman bölümündeki tüm dersler