Java Advanced II: High-Performance Java - tečaj 67.500 RUB. iz izobraževalnega centra IBS, usposabljanje 40 ur, datum 29. januar 2024.
Miscellanea / / December 04, 2023
Pavel dela v Luxoftu od leta 2005. V tem času je sodeloval pri številnih projektih za vodilna ruska in tuja podjetja, kot so Boeing, Russian Post, DHL, MVideo. Trenutno igra vlogo vodilnega programskega inženirja pri projektu podpore največji maloprodajni verigi za prodajo elektronike in gospodinjskih aparatov v Rusiji. Pavlov glavni interes je razvoj razširljivih aplikacij Java in zagotavljanje tehničnih rešitev za izboljšanje zmogljivosti in zanesljivosti aplikacij.
Zajete teme:
Modul 1. Pregled prilagajanja zmogljivosti – 5 ur.
ambulante splošne medicine;
Strategije prilagajanja zmogljivosti;
Meritve uspešnosti;
Kako izboljšati produktivnost?
Orodja za merjenje učinkovitosti;
JMeter;
Testiranje obremenitve z uporabo JMeter;
Kako izboljšati produktivnost z uporabo arhitekture?
Najboljše prakse za izboljšanje učinkovitosti kode.
Domača naloga – 2 uri.
Modul 2. GC algoritmi – 5 ur.
Poraba pomnilnika objektov Java;
Splošni pristopi in algoritmi zbiralcev smeti;
Serijski GC zbiralnik smeti;
Vzporedni GC zbiralnik smeti;
CMS zbiralnik smeti;
Zbiralnik smeti G1;
Shenandoah Garbage Collector;
Nastavitev zbiralnikov smeti;
Orodja za zbiranje in analiziranje metrik zbiranja smeti;
Izbira optimalnega zbiralnika smeti.
Modul 3. HotSpot JIT prevajalnik – 5 ur.
kompilacija JIT;
Java bajtna koda;
Večplastna kompilacija;
Predpomnilnik kode in njegova nastavitev;
Optimizacija kode;
Deoptimizacija kode in kdaj se pojavi;
Orodje JITWatch za analizo rezultatov prevajanja;
Vrste optimizacij;
Špekulativne optimizacije;
nastavitve prevajalnika;
AOT kompilacija.
Domača naloga – 2 uri.
Modul 4. Zastavice JVM - 3 ure.
Namen in kategorije zastavic JVM;
Splošne zastave;
Zastavice, povezane z nizi;
Zastavice za upravljanje pomnilnika;
Varne točke in z njimi povezane zastavice;
TLAB in z njimi povezane zastave;
Načrt nastavitve JVM.
Modul 5. Testiranje delovanja algoritmov (benchmarking) z JMH – 2 uri.
Kaj je benchmarking;
Uvod v JMH;
JMH API;
Netrivialni primeri;
Uporaba JMH v praksi.
Domača naloga – 2 uri.
Modul 6. Uporaba pomnilnika zunaj kopice (off-heap memory) – 3 ure.
Kaj je sun.misc. Nevarno;
Nevarne metode;
Zmogljivost domačega pomnilnika;
Ustvarjanje podatkovnih struktur v domačem pomnilniku;
Ocena zmogljivosti domačega pomnilnika in primerjava s pomnilnikom kopice;
Obetaven API za dostop do tujega pomnilnika.
Modul 7. Serializacija – 2 uri.
Serializatorji JSON (GSON, Jackson);
Binarni serializatorji (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Primerjava zmogljivosti različnih serializatorjev.
Modul 8. Java Profiling – 4 ure.
Kdaj in kako narediti profiliranje?
Profilerji za vzorčenje in instrumentacijo;
Uporaba Java VisualVM za profiliranje;
Profiliranje s Spring AOP;
Profiliranje z IDEA in async profilerjem;
Java Flight Recorder;
Analiza dnevnikov Java Flight Recorder z uporabo Mission Conrol;
Ustvarjanje in beleženje dogodkov JFR po meri;
Uporaba agentov Java za vdelavo kode in snemanje vseh dogodkov v Java Flight Recorder;
Pisanje programov za samodejno analizo dnevnikov JFR;
Zbiranje in analiza SQL poizvedb z uporabo JFR;
Zbiranje in analiza zahtev REST z uporabo JFR.
Domača naloga – 2 uri.
Modul 9. Spremljanje in analiziranje kopičnih podatkov. Puščanje pomnilnika – 2 uri.
Orodja za analizo podatkov v pomnilniku;
Znaki puščanja spomina;
Glavni vzroki puščanja spomina;
Iskanje in odkrivanje uhajanja pomnilnika.
Modul 10. GraalVM – 3 ure
ekosistem GraalVM;
izvajalno okolje GraalVM;
Polyglot API;
Kompilacija in izvorna slika;
Merila uspešnosti.
Modul 11. Predpomnjenje v aplikacijah Java - 3 ure.
Vzorci predpomnjenja;
Primerjava API-jev predpomnilnika;
Predpomnjenje poizvedb baze podatkov;
Predpomnjenje zahtev HTTP;
Osnovne metrike in nastavitve predpomnjenih knjižnic;
Primerjava priljubljenih knjižnic za predpomnjenje;
Predpomnjenje na ravni storitve;
Storitve predpomnilnika Spring;
Aplikacije, ki uporabljajo predpomnilnike različnih ravni.
Modul 12. Pregled drugih pristopov k izboljšanju produktivnosti - 3 ure.
Vzporedno programiranje (področja niti, vzporedne niti, fork-join struktura);
Asinhrono programiranje;
Reaktivno programiranje (Reactor, VertX);
Optimizacija dela z bazami podatkov;
Računalništvo v oblaku (mikrostoritve, Spring Cloud);
Merila in zaključki.