Java Advanced II: High-Performance Java - kurz 67 500 RUB. z IBS Training Center, školení 40 hodin, Datum 29. ledna 2024.
Různé / / December 04, 2023
Pavel pracuje ve společnosti Luxoft od roku 2005. Během této doby se podílel na řadě projektů pro přední ruské i zahraniční společnosti, např. Boeing, Russian Post, DHL, MVideo. V současnosti zastává roli hlavního softwarového inženýra v projektu na podporu největšího maloobchodního řetězce prodávajícího elektroniku a domácí spotřebiče v Rusku. Pavlovým hlavním zájmem je vývoj škálovatelných Java aplikací a poskytování technických řešení pro zlepšení výkonu a spolehlivosti aplikací.
Pokrytá témata:
Modul 1. Kontrola ladění výkonu – 5 hodin.
všeobecná praxe;
Strategie ladění výkonu;
Metriky výkonu;
Jak zlepšit produktivitu?
Nástroje pro měření výkonu;
JMeter;
Testování zátěže pomocí JMeter;
Jak zvýšit produktivitu pomocí architektury?
Doporučené postupy pro zlepšení výkonu kódu.
Domácí úkol – 2 hodiny.
Modul 2 GC algoritmy – 5 hodin.
Využití paměti objektů Java;
Obecné přístupy a algoritmy garbage collectorů;
Serial GC Garbage Collector;
Paralelní sběrač odpadu GC;
CMS Garbage Collector;
Popelník G1;
Shenandoah Garbage Collector;
Tuningové sběrače odpadků;
Nástroje pro sběr a analýzu metrik sběru odpadu;
Výběr optimálního sběrače odpadu.
Modul 3. HotSpot JIT kompilátor – 5 hodin.
kompilace JIT;
Java bytecode;
Vícevrstvá kompilace;
Mezipaměť kódu a její ladění;
Optimalizace kódu;
deoptimalizace kódu a kdy k ní dojde;
nástroj JITWatch pro analýzu výsledků kompilace;
Typy optimalizací;
Spekulativní optimalizace;
Nastavení kompilátoru;
AOT kompilace.
Domácí úkol – 2 hodiny.
Modul 4. Příznaky JVM – 3 hodiny.
Účel a kategorie příznaků JVM;
Obecné vlajky;
Vlajky spojené s provázky;
Příznaky správy paměti;
body obnovy a vlajky s nimi spojené;
TLAB a příznaky s nimi spojené;
Plán ladění JVM.
Modul 5. Testování výkonnosti algoritmů (benchmarking) pomocí JMH – 2 hodiny.
Co je benchmarking;
Úvod do JMH;
JMH API;
Netriviální příklady;
Aplikace JMH v praxi.
Domácí úkol – 2 hodiny.
Modul 6. Použití paměti mimo haldu (paměť mimo haldu) – 3 hodiny.
Co je sun.misc. Nebezpečný;
Nebezpečné metody;
Výkon nativní paměti;
Vytváření datových struktur v nativní paměti;
Hodnocení výkonu nativní paměti a srovnání s pamětí haldy;
Slibné rozhraní API pro přístup k cizí paměti.
Modul 7. Serializace – 2 hodiny.
JSON serializátory (GSON, Jackson);
Binární serializátory (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Porovnání výkonu různých serializátorů.
Modul 8. Java profilování – 4 hodiny.
Kdy a jak profilovat?
Vzorkovací a přístrojové profilovače;
Použití Java VisualVM pro profilování;
Profilování pomocí Spring AOP;
Profilování pomocí IDEA a asynchronního profilovače;
Java Flight Recorder;
Analýza protokolů Java Flight Recorder pomocí Mission Control;
Vytváření a protokolování vlastních událostí JFR;
Použití agentů Java pro vkládání kódu a záznam jakýchkoli událostí v Java Flight Recorder;
Psaní programů pro automatickou analýzu protokolů JFR;
Sběr a analýza SQL dotazů pomocí JFR;
Sběr a analýza požadavků REST pomocí JFR.
Domácí úkol – 2 hodiny.
Modul 9. Monitorování a analýza dat haldy. Úniky paměti – 2 hodiny.
Nástroje pro analýzu dat v paměti;
Známky úniku paměti;
Hlavní příčiny úniků paměti;
Vyhledejte a zjistěte úniky paměti.
Modul 10. GraalVM – 3 hodiny
GraalVM ekosystém;
běhové prostředí GraalVM;
Polyglot API;
Kompilace a nativní obraz;
Srovnávací hodnoty.
Modul 11. Ukládání do mezipaměti v Java aplikacích - 3 hodiny.
Vzory ukládání do mezipaměti;
Porovnání mezipaměti API;
Ukládání databázových dotazů do mezipaměti;
Ukládání HTTP požadavků do mezipaměti;
Základní metriky a nastavení cachovacích knihoven;
Porovnání populárních cachovacích knihoven;
Ukládání úrovně služeb do mezipaměti;
Služby Caching Spring;
Aplikace, které používají mezipaměti různých úrovní.
Modul 12. Přehled dalších přístupů ke zlepšení produktivity – 3 hodiny.
Paralelní programování (pooly vláken, paralelní vlákna, struktura fork-join);
Asynchronní programování;
Reaktivní programování (Reactor, VertX);
Optimalizace práce s databázemi;
Cloud computing (mikroslužby, Spring Cloud);
Benchmarky a závěry.