0Pricing
Java Academy · Pelajaran

Menganalisis dengan JDK Mission Control

Baca rekaman JFR.

Menganalisis dengan JDK Mission Control adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.

Apa itu JMC

Kontrol Misi JDK (JMC) adalah alat grafis untuk menganalisis rekaman JFR.

Alat ini membuka berkas .jfr dan mengubah peristiwa mentah menjadi tampilan yang dapat dijelajahi: metode terpanas, perilaku pengumpulan sampah, persaingan kunci, alokasi, dan lainnya. Alat ini juga menyertakan halaman Analisis Otomatis yang menandai kemungkinan masalah.

Mendapatkan JMC

JMC adalah unduhan mandiri (fitur ini dipisahkan dari JDK setelah JDK 8).

Unduh paket JMC dari Adoptium atau Oracle, luncurkan, lalu buka berkas .jfr Anda melalui Berkas > Buka Berkas. Tidak diperlukan agen atau memulai ulang aplikasi — Anda menganalisis rekaman yang sudah diambil.

Halaman Analisis Otomatis

Hal pertama yang ditampilkan JMC adalah Analisis Otomatis: serangkaian heuristik yang menilai rekaman Anda.

Halaman ini menyoroti hal-hal seperti jeda pengumpulan sampah yang panjang, alokasi tinggi, utas yang terblokir, dan pembungkusan nilai primitif menjadi objek. Setiap temuan memiliki tingkat keparahan dan penjelasan singkat — titik awal yang baik sebelum Anda menyelidikinya secara manual.

Tampilan Pembuatan Profil Metode

Halaman Pembuatan Profil Metode menggabungkan sampel eksekusi ke dalam pohon panggilan.

Metode dengan waktu mandiri tertinggi adalah titik panas CPU Anda. Anda dapat beralih antara tampilan dari atas ke bawah (dari pemanggil ke metode yang dipanggil) dan dari bawah ke atas (metode panas terlebih dahulu) untuk memahami hal yang lambat dan pihak yang memanggilnya.

Grafik Api

JMC merender sampel tumpukan sebagai grafik api: lebar sebanding dengan waktu yang dihabiskan.

Dataran lebar di dekat bagian atas grafik menunjukkan tempat CPU benar-benar menghabiskan siklusnya. Visualisasi ini memperjelas jalur panggilan yang paling dominan, jauh lebih cepat daripada membaca tabel yang diurutkan.

Tampilan Pengumpulan Sampah

Halaman pengumpulan sampah menampilkan durasi jeda, frekuensi, dan pengumpul mana yang berjalan.

Carilah jeda yang panjang atau sering terjadi dan mengganggu latensi. Laju alokasi yang tinggi biasanya berkorelasi dengan pengumpulan sampah generasi muda yang sering — solusinya adalah mengurangi pembuatan dan pembuangan objek berulang, bukan mengganti pengumpul.

Titik Panas Alokasi

Tampilan Alokasi TLAB milik JMC mengurutkan tempat objek dibuat.

Padukan informasi ini dengan jejak tumpukan untuk menemukan baris tepat yang melakukan alokasi dalam perulangan panas. Sering kali, perubahan kecil — menggunakan kembali penyangga atau menghindari pembungkusan otomatis — dapat mengurangi tekanan pada pengumpulan sampah secara drastis.

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Autoboxing: each add boxes an int into an Integer object
        List<Integer> boxed = new ArrayList<>();
        for (int i = 0; i < 5; i++) boxed.add(i);
        System.out.println("Boxed " + boxed.size() + " Integers");
        System.out.println("JMC allocation view would flag this hotspot");
    }
}

Persaingan Kunci

Tampilan Instans Kunci dan Monitor Java memperlihatkan utas yang menunggu sinkronisasi.

Jika banyak utas terblokir pada monitor yang sama, kunci tersebut menjadi titik kemacetan skalabilitas. JMC menampilkan objek yang diperebutkan dan jejak tumpukan yang menunggu sehingga Anda dapat menargetkan bagian kritis yang tepat.

Tampilan Utas dan Latensi

Halaman Utas menampilkan linimasa setiap utas: aktif di CPU, diparkir, menunggu IO, atau terblokir.

Dengan cara inilah Anda mengonfirmasi apakah perlambatan terikat CPU atau terikat IO — persis perbedaan dari pelajaran tentang titik kemacetan. Pita 'menunggu' yang lebar berarti Anda terikat IO atau kunci, bukan terikat komputasi.

Dari Temuan ke Perbaikan

Alurnya: buka rekaman, baca Analisis Otomatis, selidiki area yang ditandai (pembuatan profil metode, pengumpulan sampah, atau kunci), konfirmasikan dengan grafik api dan tampilan utas, lalu rumuskan hipotesis.

Ubah satu hal, rekam ulang, dan bandingkan dengan garis dasar Anda. JMC mengubah berkas biner menjadi wawasan yang dapat ditindaklanjuti.

Membandingkan Rekaman

Untuk membuktikan bahwa pengoptimalan berhasil, bandingkan rekaman 'sebelum' dan 'sesudah'.

Buat rekaman JFR sebagai garis dasar, terapkan satu perubahan, buat rekaman lain, lalu buka keduanya di JMC. Lihat tampilan yang sama — pembuatan profil metode, pengumpulan sampah, alokasi — secara berdampingan. Perbaikan nyata terlihat dari berkurangnya waktu mandiri, lebih sedikit jeda pengumpulan sampah, atau laju alokasi yang lebih rendah. Jika tidak ada perubahan, kembalikan perubahan tersebut.

Pemeriksaan Singkat

Dalam tampilan pembuatan profil metode dan grafik api JMC, apa yang ditunjukkan oleh waktu mandiri suatu metode (atau dataran lebar di bagian atas)?

Rangkuman

JMC membaca rekaman JFR dan menjadikannya dapat ditindaklanjuti:

  • Analisis Otomatis menandai kemungkinan masalah sejak awal.
  • Pembuatan profil metode dan grafik api mengungkap titik panas CPU melalui waktu mandiri.
  • Tampilan pengumpulan sampah dan alokasi mengungkap pembuatan dan pembuangan objek berulang.
  • Tampilan kunci dan utas membedakan kondisi terikat CPU dari kondisi terikat IO atau kunci.
  • Selidiki lebih dalam, rumuskan hipotesis, perbaiki satu hal, rekam ulang, lalu bandingkan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menganalisis dengan JDK Mission Control” gratis?

Ya — teks lengkap “Menganalisis dengan JDK Mission Control” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menganalisis dengan JDK Mission Control”?

Baca rekaman JFR. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menganalisis dengan JDK Mission Control” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengidentifikasi Bottleneck
  2. Java Flight Recorder
  3. Menganalisis dengan JDK Mission Control
  4. Flag Penyetelan JVM Umum
← Kembali ke Java Academy