Java Academy · Pelajaran

Menganalisis dengan JDK Mission Control

Baca rakaman JFR

Pelajaran 3 daripada 413 langkah

Menganalisis dengan JDK Mission Control ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Apakah JMC?

Kawalan Misi JDK (JMC) ialah alat grafik untuk menganalisis rakaman JFR.

Ia membuka fail .jfr dan menukarkan peristiwa mentah kepada paparan yang boleh dinavigasi: kaedah yang paling sibuk, tingkah laku kutipan sampah, persaingan kunci, peruntukan dan lain-lain. Ia juga menyertakan halaman Analisis Automatik yang menandakan masalah yang mungkin berlaku.

Mendapatkan JMC

JMC ialah muat turun berasingan (ia tidak lagi digabungkan dengan JDK selepas JDK 8).

Muat turunnya daripada binaan JMC Adoptium atau Oracle, lancarkannya dan buka fail .jfr anda melalui Fail > Buka Fail. Tiada ejen atau mula semula aplikasi diperlukan — anda menganalisis rakaman yang telah ditangkap.

Halaman Analisis Automatik

Perkara pertama yang ditunjukkan oleh JMC ialah Analisis Automatik: sekumpulan kaedah heuristik yang menilai rakaman anda.

Ia menyerlahkan perkara seperti jeda kutipan sampah yang panjang, peruntukan yang tinggi, utas yang disekat dan pembungkusan jenis primitif kepada objek. Setiap penemuan mempunyai tahap keterukan dan penjelasan ringkas — titik permulaan yang baik sebelum anda menyiasat secara manual.

Paparan Pemprofilan Kaedah

Halaman Pemprofilan Kaedah mengagregatkan sampel pelaksanaan ke dalam pepohon panggilan.

Kaedah dengan masa sendiri tertinggi ialah titik panas CPU anda. Anda boleh beralih antara paparan atas ke bawah (daripada pemanggil kepada kaedah yang dipanggil) dan bawah ke atas (kaedah paling sibuk dahulu) untuk memahami perkara yang perlahan serta pihak yang memanggilnya.

Graf Nyalaan

JMC memaparkan sampel tindanan sebagai graf nyalaan: lebarnya berkadar dengan masa yang digunakan.

Jalur mendatar yang lebar berhampiran bahagian atas graf menunjukkan tempat CPU sebenarnya menggunakan kitarannya. Paparan ini menjadikan laluan panggilan yang paling dominan jelas dengan serta-merta, jauh lebih pantas berbanding membaca jadual yang diisih.

Paparan Kutipan Sampah

Halaman kutipan sampah menunjukkan tempoh jeda, kekerapan dan pengutip yang berjalan.

Cari jeda yang panjang atau kerap sehingga menjejaskan kependaman. Kadar peruntukan yang tinggi biasanya berkait dengan kutipan sampah generasi muda yang kerap — penyelesaiannya ialah mengurangkan penciptaan dan pemusnahan objek yang tidak perlu, bukannya menukar pengutip.

Titik Panas Peruntukan

Paparan Peruntukan TLAB JMC menyusun kedudukan tempat objek dicipta.

Padankan ini dengan jejak tindanan untuk mencari baris tepat yang membuat peruntukan dalam gelung sibuk. Selalunya perubahan kecil — menggunakan semula penimbal atau mengelakkan pembungkusan automatik — mengurangkan tekanan kutipan sampah dengan ketara.

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

Paparan Kejadian Kunci dan Monitor Java mendedahkan utas yang menunggu penyegerakan.

Jika banyak utas disekat pada monitor yang sama, kunci itu ialah titik kesesakan kebolehskalaan. JMC menunjukkan objek yang diperebutkan dan jejak tindanan utas yang menunggu supaya anda boleh menyasarkan bahagian kritikal yang betul.

Paparan Utas dan Kependaman

Halaman Utas menunjukkan garis masa setiap utas: berjalan pada CPU, dijeda, menunggu IO atau disekat.

Beginilah caranya anda mengesahkan sama ada kelembapan terikat CPU atau terikat IO — tepat seperti perbezaan daripada pelajaran tentang titik kesesakan. Jalur 'menunggu' yang lebar bermaksud anda terikat IO atau kunci, bukannya terikat pengiraan.

Daripada Penemuan kepada Penyelesaian

Aliran kerja: buka rakaman, baca Analisis Automatik, teliti lebih lanjut bahagian yang ditandakan (pemprofilan kaedah, kutipan sampah atau kunci), sahkan dengan graf nyalaan dan paparan utas, kemudian bina hipotesis.

Ubah satu perkara, rakam semula dan bandingkan dengan garis dasar anda. JMC menukarkan fail binari kepada cerapan yang boleh diambil tindakan.

Membandingkan Rakaman

Untuk membuktikan bahawa pengoptimuman berjaya, bandingkan rakaman 'sebelum' dan 'selepas'.

Rakam JFR garis dasar, gunakan satu perubahan, rakam satu lagi dan buka kedua-duanya dalam JMC. Lihat paparan yang sama — pemprofilan kaedah, kutipan sampah dan peruntukan — secara bersebelahan. Peningkatan sebenar akan kelihatan sebagai pengurangan masa sendiri, jeda kutipan sampah yang lebih sedikit atau kadar peruntukan yang lebih rendah. Jika tiada perubahan, undurkan perubahan tersebut.

Semakan Ringkas

Dalam paparan pemprofilan kaedah dan graf nyalaan JMC, apakah yang ditunjukkan oleh masa sendiri sesuatu kaedah (atau jalur mendatar yang lebar di bahagian atas)?

Ringkasan

JMC membaca rakaman JFR dan menjadikannya boleh diambil tindakan:

  • Analisis Automatik menandakan masalah yang mungkin berlaku dari awal.
  • Pemprofilan kaedah dan graf nyalaan mendedahkan titik panas CPU melalui masa sendiri.
  • Paparan kutipan sampah dan peruntukan mendedahkan pergantian objek dalam memori.
  • Paparan kunci dan utas membezakan keadaan terikat CPU daripada keadaan terikat IO atau kunci.
  • Siasat lebih lanjut, bina hipotesis, baiki satu perkara, rakam semula dan bandingkan.
Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
104
Pelajaran
374

Soalan Lazim

Adakah pelajaran “Menganalisis dengan JDK Mission Control” percuma?

Ya — teks penuh “Menganalisis dengan JDK Mission Control” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menganalisis dengan JDK Mission Control”?

Baca rakaman JFR Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Java Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Menganalisis dengan JDK Mission Control” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengenal Pasti Kesempitan
  2. Java Flight Recorder
  3. Menganalisis dengan JDK Mission Control
  4. Bendera Penalaan JVM Lazim
← Kembali ke Java Academy