Java Advanced II: Java visokih performansi - tečaj 67.500 RUB. iz IBS Training Center, obuka 40 sati, datum 29. siječnja 2024.
Miscelanea / / December 04, 2023
Pavel radi u Luxoftu od 2005. Tijekom tog vremena sudjelovao je u nizu projekata za vodeće ruske i strane tvrtke, kao što su Boeing, Russian Post, DHL, MVideo. Trenutno igra ulogu vodećeg softverskog inženjera u projektu podrške najvećem maloprodajnom lancu za prodaju elektronike i kućanskih aparata u Rusiji. Pavelov glavni interes je razvoj skalabilnih Java aplikacija i pružanje tehničkih rješenja za poboljšanje performansi i pouzdanosti aplikacija.
Tema završena:
Modul 1. Pregled podešavanja performansi – 5 sati.
Opće prakse;
Strategije podešavanja performansi;
Mjerila izvedbe;
Kako poboljšati produktivnost?
Alati za mjerenje učinka;
JMeter;
Testiranje opterećenja pomoću JMeter-a;
Kako poboljšati produktivnost koristeći arhitekturu?
Najbolje prakse za poboljšanje izvedbe koda.
Domaća zadaća – 2 sata.
Modul 2. GC algoritmi – 5 sati.
Korištenje memorije Java objekata;
Opći pristupi i algoritmi skupljača smeća;
Serijski GC skupljač smeća;
Paralelni GC skupljač smeća;
CMS skupljač smeća;
Sakupljač smeća G1;
Skupljač smeća Shenandoah;
Podešavanje sakupljača smeća;
Alati za prikupljanje i analizu metrike prikupljanja smeća;
Odabir optimalnog sakupljača smeća.
Modul 3. HotSpot JIT kompajler – 5 sati.
JIT kompilacija;
Java bajt kod;
Višeslojna kompilacija;
Predmemorija koda i njegovo podešavanje;
Optimizacija koda;
Deoptimizacija koda i kada se događa;
JITWatch alat za analizu rezultata kompilacije;
Vrste optimizacija;
Špekulativne optimizacije;
Postavke prevodioca;
AOT kompilacija.
Domaća zadaća – 2 sata.
Modul 4. JVM oznake - 3 sata.
Namjena i kategorije JVM oznaka;
Opće zastave;
Zastavice povezane s nizovima;
Oznake upravljanja memorijom;
Sigurnosne točke i zastavice povezane s njima;
TLAB i zastave povezane s njima;
Plan podešavanja JVM-a.
Modul 5. Testiranje performansi algoritama (benchmarking) pomoću JMH – 2 sata.
Što je benchmarking;
Uvod u JMH;
JMH API;
Netrivijalni primjeri;
Primjena JMH u praksi.
Domaća zadaća – 2 sata.
Modul 6. Korištenje memorije izvan hrpe (off-heap memorija) – 3 sata.
Što je sun.razno. nesigurno;
Nesigurne metode;
Izvedba izvorne memorije;
Stvaranje struktura podataka u prirodnoj memoriji;
Procjena izvedbe izvorne memorije i usporedba s heap memorijom;
Obećavajući API za pristup stranoj memoriji.
Modul 7. Serijalizacija – 2 sata.
JSON serijalizatori (GSON, Jackson);
Binarni serijalizatori (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Usporedba performansi različitih serijalizatora.
Modul 8. Java profiliranje – 4 sata.
Kada i kako napraviti profiliranje?
Profileri uzorkovanja i instrumentacije;
Korištenje Java VisualVM za profiliranje;
Profiliranje s Spring AOP-om;
Profiliranje s IDEA i async profilerom;
Java Flight Recorder;
Analiza zapisnika Java Flight Recordera korištenjem Mission Conrola;
Stvaranje i bilježenje prilagođenih JFR događaja;
Korištenje Java agenata za ugradnju koda i snimanje svih događaja u Java Flight Recorder;
Pisanje programa za automatsku analizu JFR dnevnika;
Prikupljanje i analiza SQL upita korištenjem JFR-a;
Prikupljanje i analiza REST zahtjeva pomoću JFR-a.
Domaća zadaća – 2 sata.
Modul 9. Praćenje i analiza heap podataka. Curenje memorije – 2 sata.
Alati za analizu podataka u memoriji;
Znakovi curenja memorije;
Glavni uzroci curenja memorije;
Pretražite i otkrijte curenje memorije.
Modul 10. GraalVM – 3 sata
GraalVM ekosustav;
GraalVM runtime;
Poliglot API;
Kompilacija i izvorna slika;
mjerila.
Modul 11. Predmemoriranje u Java aplikacijama - 3 sata.
Predmemoriranje uzoraka;
Usporedba API-ja predmemorije;
Predmemoriranje upita baze podataka;
Spremanje HTTP zahtjeva u predmemoriju;
Osnovna metrika i postavke knjižnica za predmemoriju;
Usporedba popularnih biblioteka za predmemoriju;
Predmemoriranje razine usluge;
Caching Spring usluge;
Aplikacije koje koriste predmemorije različitih razina.
Modul 12. Pregled ostalih pristupa poboljšanju produktivnosti - 3 sata.
Paralelno programiranje (skupine niti, paralelne niti, fork-join struktura);
Asinkrono programiranje;
Reaktivno programiranje (Reactor, VertX);
Optimizacija rada s bazama podataka;
Računalstvo u oblaku (mikroservisi, Spring Cloud);
Mjerila i zaključci.