Java Advanced II: Nagy teljesítményű Java - tanfolyam 67 500 RUB. az IBS Oktatóközpontból, 40 órás képzés, 2024. január 29.
Vegyes Cikkek / / December 04, 2023
Pavel 2005 óta dolgozik a Luxoftnál. Ez idő alatt számos vezető orosz és külföldi vállalat projektjében vett részt, mint például a Boeing, Russian Post, DHL, MVideo. Jelenleg a vezető szoftvermérnök szerepét tölti be egy projektben, amely a legnagyobb oroszországi elektronikai és háztartási készülékeket értékesítő kiskereskedelmi láncot támogatja. Pavel fő érdeklődési köre a méretezhető Java alkalmazások fejlesztése, valamint az alkalmazások teljesítményének és megbízhatóságának javítására szolgáló technikai megoldások biztosítása.
Lefedett témakörök:
1. modul. Teljesítményhangolás áttekintése – 5 óra.
Általános praxisok;
Teljesítményhangolási stratégiák;
Teljesítmény adatok;
Hogyan javítható a termelékenység?
Teljesítménymérő eszközök;
JMeter;
Terhelésvizsgálat a JMeter segítségével;
Hogyan javítható a termelékenység az architektúra segítségével?
A kódteljesítmény javításának legjobb gyakorlatai.
Házi feladat – 2 óra.
2. modul. GC algoritmusok – 5 óra.
Java objektumok memóriahasználata;
A szemétgyűjtők általános megközelítései és algoritmusai;
Soros GC szemétgyűjtő;
Párhuzamos GC szemétgyűjtő;
CMS szemétgyűjtő;
Szemétgyűjtő G1;
Shenandoah szemétgyűjtő;
Szemétgyűjtők hangolása;
Eszközök szemétgyűjtési mutatók összegyűjtéséhez és elemzéséhez;
Az optimális szemétgyűjtő kiválasztása.
3. modul. HotSpot JIT fordító – 5 óra.
JIT összeállítás;
Java bájtkód;
Többrétegű összeállítás;
Kód gyorsítótár és hangolása;
Kód optimalizálás;
A kód deoptimalizálása és annak előfordulása;
JITWatch eszköz az összeállítási eredmények elemzéséhez;
Az optimalizálás típusai;
Spekulatív optimalizálás;
Fordító beállításai;
AOT összeállítás.
Házi feladat – 2 óra.
4. modul. JVM zászlók - 3 óra.
A JVM-jelzők célja és kategóriái;
Általános zászlók;
Fúrókkal társított zászlók;
Memóriakezelési zászlók;
Biztonsági pontok és a hozzájuk tartozó zászlók;
TLAB és a hozzájuk kapcsolódó zászlók;
JVM tuning terv.
5. modul. Algoritmusok teljesítményének tesztelése (benchmarking) JMH segítségével – 2 óra.
Mi az a benchmarking;
Bevezetés a JMH-ba;
JMH API;
Nem triviális példák;
A JMH alkalmazása a gyakorlatban.
Házi feladat – 2 óra.
6. modul. Memória használata a kupon kívül (off-heap memória) – 3 óra.
Mi az a sun.misc. Nem biztonságos;
Nem biztonságos módszerek;
Natív memória teljesítménye;
Adatstruktúrák létrehozása a natív memóriában;
A natív memória teljesítményének értékelése és összehasonlítása kupacmemóriával;
Ígéretes Foreign Memory Access API.
7. modul. Sorozatkészítés – 2 óra.
JSON szerializálók (GSON, Jackson);
Bináris szerializálók (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Különböző sorozatkészítők teljesítményének összehasonlítása.
8. modul. Java profilozás – 4 óra.
Mikor és hogyan kell profilalkotást végezni?
Mintavételi és műszerprofilozók;
Java VisualVM használata profilalkotáshoz;
Profilozás tavaszi AOP-val;
Profilozás IDEA-val és aszinkron profilozóval;
Java Flight Recorder;
Java Flight Recorder naplók elemzése Mission Conrol segítségével;
Egyedi JFR események létrehozása és naplózása;
Java ügynökök használata kód beágyazására és események rögzítésére a Java Flight Recorderben;
Íróprogramok JFR-naplók automatikus elemzéséhez;
SQL lekérdezések gyűjtése és elemzése JFR használatával;
REST kérések gyűjtése és elemzése JFR használatával.
Házi feladat – 2 óra.
9. modul. Halomadatok figyelése és elemzése. Memóriaszivárgás – 2 óra.
Memórián belüli adatelemző eszközök;
Memóriaszivárgás jelei;
A memóriaszivárgások fő okai;
Memóriaszivárgások keresése és észlelése.
10. modul. GraalVM – 3 óra
GraalVM ökoszisztéma;
GraalVM futási idő;
Polyglot API;
Összeállítás és natív kép;
Benchmarkok.
11. modul. Gyorsítótárazás a Java alkalmazásokban - 3 óra.
Gyorsítótárazási minták;
A cache API-k összehasonlítása;
Adatbázis-lekérdezések gyorsítótárazása;
HTTP kérések gyorsítótárazása;
A gyorsítótárak alapvető mérőszámai és beállításai;
Népszerű gyorsítótárak összehasonlítása;
Szolgáltatási szintű gyorsítótárazás;
Gyorsítótárazási tavaszi szolgáltatások;
Különböző szintű gyorsítótárakat használó alkalmazások.
12. modul. A termelékenység javítását célzó egyéb megközelítések áttekintése - 3 óra.
Párhuzamos programozás (szálkészletek, párhuzamos szálak, fork-join struktúra);
Aszinkron programozás;
Reaktív programozás (Reactor, VertX);
Adatbázisokkal végzett munka optimalizálása;
Felhőalapú számítástechnika (mikroszolgáltatások, Spring Cloud);
Benchmarkok és következtetések.