CodeBlanks Logo Icon CodeBlanks

JFR ve jcmd

Java Flight Recorder ve jcmd ile profil çıkarmayı öğrenirsin.

JFR ile profil çıkarma

JFR (Java Flight Recorder), çalışan uygulamadan düşük ek yüklerle olay kaydı toplar. Yöntem örneklemesi, bellek ayırma, çöp toplama ve kilit çekişmesi gibi olaylar kaydedilir. Üretimde sürekli çalışabilir.

Kayıt jcmd PID JFR.start duration=60s filename=rec.jfr ile başlatılır. Çıkan .jfr dosyası jfr print komutuyla ya da JDK Mission Control ile incelenir.

jcmd aracı

jcmd, çalışan JVM'e komut gönderen çok yönlü bir araçtır. JFR kaydının yanı sıra heap dump, thread dump, GC kontrolü ve tanılama komutlarını destekler. jcmd PID help ile kullanılabilir komutlar listelenir.

JFR kaydı bittikten sonra jcmd PID JFR.dump filename=rec.jfr ile döküm alınır. Üretimde sorun analizi için JFR ilk başvurulacak araçtır.

Uygulama JfrRecorder sınıfını yaz

class JfrRecorder tanımla; static String start(int pid, int seconds) metodu "jcmd " + pid + " JFR.start duration=" + seconds + "s" döndürsün. main içinde System.out.println(start(1234, 60)); yazdır.

Başlangıç kodu

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

// main: 1234 PID ve 60 saniye için komutu yazdır

Örnek çözüm

Main.java
class JfrRecorder {
    static String start(int pid, int seconds) {
        return "jcmd " + pid + " JFR.start duration=" + seconds + "s";
    }
    public static void main(String[] args) {
        System.out.println(start(1234, 60));
    }
}

Beklenen çıktı

jcmd 1234 JFR.start duration=60s

Soru ve cevaplar

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

1 JFR başlatma komutunu tamamla

Soru
jcmd ____ duration=60s filename=rec.jfr
Cevap
jcmd JFR.start duration=60s filename=rec.jfr

Açıklama: jcmd JFR.start komutu kaydı başlatır.

2 JFR'nin belirgin avantajı nedir?

  • Düşük ek yük Doğru cevap
  • Sınıf derler
  • Thread başlatır
  • Dosya siler

Açıklama: JFR düşük ek yükle üretimde çalışabilir.

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

Kavram Anlamı
JFR.start Kayıt başlatır
jcmd Kontrol aracı
JMC Analiz aracı
duration Kayıt süresi

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