Java Advanced II: Java Berkinerja Tinggi - kursus RUB 67.500. dari IBS Training Center, pelatihan 40 jam, Tanggal 29 Januari 2024.
Miscellanea / / December 04, 2023
Pavel telah bekerja di Luxoft sejak 2005. Selama ini, ia mengikuti sejumlah proyek untuk perusahaan terkemuka Rusia dan asing, seperti Boeing, Russian Post, DHL, MVideo. Saat ini, ia berperan sebagai insinyur perangkat lunak utama dalam sebuah proyek untuk mendukung jaringan ritel terbesar yang menjual elektronik dan peralatan rumah tangga di Rusia. Minat utama Pavel adalah mengembangkan aplikasi Java yang dapat diskalakan dan memberikan solusi teknis untuk meningkatkan kinerja dan keandalan aplikasi.
Topik yang dibahas:
Modul 1. Tinjauan Penyetelan Kinerja – 5 jam.
Praktek Umum;
Strategi penyesuaian kinerja;
Metrik kinerja;
Bagaimana cara meningkatkan produktivitas?
Alat pengukuran kinerja;
JMeter;
Uji beban menggunakan JMeter;
Bagaimana cara meningkatkan produktivitas menggunakan arsitektur?
Praktik terbaik untuk meningkatkan kinerja kode.
Pekerjaan rumah – 2 jam.
Modul 2. Algoritma GC – 5 jam.
Penggunaan memori objek Java;
Pendekatan umum dan algoritma pemulung;
Pengumpul Sampah Serial GC;
Pengumpul sampah GC paralel;
Pengumpul Sampah CMS;
Pengumpul sampah G1;
Pengumpul Sampah Shenandoah;
Menyetel pengumpul sampah;
Alat untuk mengumpulkan dan menganalisis metrik pengumpulan sampah;
Memilih pengumpul sampah yang optimal.
Modul 3. Kompiler HotSpot JIT – 5 jam.
kompilasi JIT;
bytecode Java;
kompilasi multi-lapis;
Cache kode dan penyetelannya;
Pengoptimalan kode;
Deoptimasi kode dan kapan itu terjadi;
Alat JITWatch untuk menganalisis hasil kompilasi;
Jenis optimasi;
Optimalisasi spekulatif;
Pengaturan kompiler;
kompilasi AOT.
Pekerjaan rumah – 2 jam.
Modul 4. Bendera JVM - 3 jam.
Tujuan dan kategori flag JVM;
Bendera umum;
Bendera yang diasosiasikan dengan string;
Bendera manajemen memori;
Safepoint dan bendera yang terkait dengannya;
TLAB dan flag yang terkait dengannya;
Rencana penyetelan JVM.
Modul 5. Pengujian kinerja algoritma (benchmarking) menggunakan JMH – 2 jam.
Apa itu pembandingan;
Pengantar JMH;
API JMH;
Contoh-contoh yang tidak sepele;
Penerapan JMH dalam praktek.
Pekerjaan rumah – 2 jam.
Modul 6. Menggunakan memori di luar heap (off-heap memory) – 3 jam.
Apa itu sun.lain-lain. Tidak aman;
Metode yang tidak aman;
Kinerja memori asli;
Membuat struktur data di memori asli;
Evaluasi kinerja memori asli dan perbandingan dengan memori heap;
API Akses Memori Asing yang Menjanjikan.
Modul 7. Serialisasi – 2 jam.
Serializer JSON (GSON, Jackson);
Serializer biner (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Membandingkan kinerja serializer yang berbeda.
Modul 8. Pembuatan Profil Java – 4 jam.
Kapan dan bagaimana melakukan pembuatan profil?
Profiler pengambilan sampel dan instrumentasi;
Menggunakan Java VisualVM untuk pembuatan profil;
Pembuatan profil dengan Spring AOP;
Pembuatan profil dengan IDEA dan profiler async;
Perekam Penerbangan Jawa;
Analisis log Java Flight Recorder menggunakan Mission Conrol;
Membuat dan mencatat acara JFR khusus;
Menggunakan agen Java untuk menyematkan kode dan merekam peristiwa apa pun di Java Flight Recorder;
Menulis program untuk analisis otomatis log JFR;
Pengumpulan dan analisis kueri SQL menggunakan JFR;
Pengumpulan dan analisis permintaan REST menggunakan JFR.
Pekerjaan rumah – 2 jam.
Modul 9. Memantau dan menganalisis data heap. Kebocoran memori – 2 jam.
Alat analisis data dalam memori;
Tanda-tanda kebocoran memori;
Penyebab utama kebocoran memori;
Cari dan deteksi kebocoran memori.
Modul 10. GraalVM – 3 jam
ekosistem GraalVM;
waktu proses GraalVM;
API Poliglot;
Kompilasi dan gambar asli;
Tolak ukur.
Modul 11. Caching di Aplikasi Java - 3 jam.
Pola cache;
Perbandingan API cache;
Menyimpan kueri basis data dalam cache;
Menyimpan permintaan HTTP dalam cache;
Metrik dasar dan pengaturan perpustakaan cache;
Perbandingan perpustakaan caching populer;
Caching tingkat layanan;
Caching layanan Spring;
Aplikasi yang menggunakan cache dengan level berbeda.
Modul 12. Tinjauan pendekatan lain untuk meningkatkan produktivitas - 3 jam.
Pemrograman paralel (kumpulan thread, thread paralel, struktur gabungan garpu);
Pemrograman asinkron;
Pemrograman reaktif (Reaktor, VertX);
Optimalisasi pekerjaan dengan database;
Komputasi awan (layanan mikro, Spring Cloud);
Tolok ukur dan kesimpulan.