Java Advanced II: Högpresterande Java - kurs 67 500 RUB. från IBS Training Center, utbildning 40 timmar, Datum 29 januari 2024.
Miscellanea / / December 04, 2023
Pavel har arbetat på Luxoft sedan 2005. Under denna tid deltog han i ett antal projekt för ledande ryska och utländska företag, såsom Boeing, Russian Post, DHL, MVideo. För närvarande spelar han rollen som ledande mjukvaruingenjör i ett projekt för att stödja den största detaljhandelskedjan som säljer elektronik och hushållsapparater i Ryssland. Pavels huvudsakliga intresse är att utveckla skalbara Java-applikationer och tillhandahålla tekniska lösningar för att förbättra applikationernas prestanda och tillförlitlighet.
Ämnen som behandlas:
Modul 1. Performance Tuning Review – 5 timmar.
Allmän praxis;
Strategier för prestationsjustering;
Prestandamätningar;
Hur kan man förbättra produktiviteten?
Verktyg för prestandamätning;
JMeter;
Belastningstestning med JMeter;
Hur kan man förbättra produktiviteten med hjälp av arkitektur?
Bästa metoder för att förbättra kodprestanda.
Läxor – 2 timmar.
Modul 2. GC-algoritmer – 5 timmar.
Minnesanvändning av Java-objekt;
Allmänna tillvägagångssätt och algoritmer för sophämtare;
Seriell GC Garbage Collector;
Parallell GC sophämtare;
CMS Garbage Collector;
Sophämtare G1;
Shenandoah Garbage Collector;
Tuning av sophämtare;
Verktyg för insamling och analys av sopsamlingsmått;
Att välja den optimala sophämtaren.
Modul 3. HotSpot JIT-kompilator – 5 timmar.
JIT-sammanställning;
Java bytecode;
Flerskiktskompilering;
Kodcache och dess inställning;
Kodoptimering;
Kodeoptimering och när det inträffar;
JITWatch-verktyg för att analysera kompileringsresultat;
Typer av optimeringar;
Spekulativa optimeringar;
Kompilatorinställningar;
AOT-sammanställning.
Läxor – 2 timmar.
Modul 4. JVM-flaggor - 3 timmar.
Syfte och kategorier för JVM-flaggor;
Allmänna flaggor;
Flaggor förknippade med strängar;
Minneshanteringsflaggor;
Säkerhetspunkter och flaggor associerade med dem;
TLAB och flaggor associerade med dem;
JVM tuning plan.
Modul 5. Testa prestanda för algoritmer (benchmarking) med JMH – 2 timmar.
Vad är benchmarking;
Introduktion till JMH;
JMH API;
Icke-triviala exempel;
Tillämpning av JMH i praktiken.
Läxor – 2 timmar.
Modul 6. Använda minne utanför högen (off-heap-minne) – 3 timmar.
Vad är sun.misc. Osäker;
Osäkra metoder;
Native minnesprestanda;
Skapa datastrukturer i inbyggt minne;
Utvärdering av inbyggt minnes prestanda och jämförelse med heap-minne;
Lovande Foreign Memory Access API.
Modul 7. Serialisering – 2 timmar.
JSON serializers (GSON, Jackson);
Binära serialiserare (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Jämför prestanda för olika serialiserare.
Modul 8. Java-profilering – 4 timmar.
När och hur gör man profilering?
Provtagnings- och instrumenteringsprofilerare;
Använda Java VisualVM för profilering;
Profilering med Spring AOP;
Profilering med IDEA och asynkron profilerare;
Java Flight Recorder;
Analys av Java Flight Recorder-loggar med hjälp av Mission Conrol;
Skapa och logga anpassade JFR-händelser;
Använda Java-agenter för att bädda in kod och spela in alla händelser i Java Flight Recorder;
Skriva program för automatisk analys av JFR-loggar;
Insamling och analys av SQL-frågor med JFR;
Insamling och analys av REST-förfrågningar med JFR.
Läxor – 2 timmar.
Modul 9. Övervakning och analys av heapdata. Minnesläckor – 2 timmar.
In-memory dataanalysverktyg;
Tecken på minnesläckor;
De främsta orsakerna till minnesläckor;
Sök och upptäck minnesläckor.
Modul 10. GraalVM – 3 timmar
GraalVM ekosystem;
GraalVM körtid;
Polyglot API;
Sammanställning och inbyggd bild;
Riktmärken.
Modul 11. Cachning i Java-applikationer - 3 timmar.
Cachingmönster;
Jämförelse av cache-API: er;
Cachning av databasfrågor;
Cacha HTTP-förfrågningar;
Grundläggande mätvärden och inställningar för cachningsbibliotek;
Jämförelse av populära cachningsbibliotek;
Cachning av tjänstenivå;
Caching fjädertjänster;
Applikationer som använder cacher på olika nivåer.
Modul 12. Genomgång av andra tillvägagångssätt för att förbättra produktiviteten - 3 timmar.
Parallell programmering (trådpooler, parallella gängor, gaffelförbandsstruktur);
Asynkron programmering;
Reaktiv programmering (Reactor, VertX);
Optimering av arbete med databaser;
Cloud computing (mikrotjänster, Spring Cloud);
Riktmärken och slutsatser.