Java Advanced II: High-Performance Java - kursus RUB 67.500. fra IBS Training Center, træning 40 timer, Dato 29. januar 2024.
Miscellanea / / December 04, 2023
Pavel har arbejdet hos Luxoft siden 2005. I løbet af denne tid deltog han i en række projekter for førende russiske og udenlandske virksomheder, såsom Boeing, Russian Post, DHL, MVideo. I øjeblikket spiller han rollen som ledende softwareingeniør i et projekt, der skal støtte den største detailkæde, der sælger elektronik og husholdningsapparater i Rusland. Pavels hovedinteresse er at udvikle skalerbare Java-applikationer og levere tekniske løsninger til at forbedre applikationens ydeevne og pålidelighed.
Emner dækket:
Modul 1. Performance Tuning Review – 5 timer.
almen praksis;
Præstationsjusteringsstrategier;
Ydeevnemålinger;
Hvordan forbedrer man produktiviteten?
Værktøjer til måling af ydeevne;
JMeter;
Belastningstest ved hjælp af JMeter;
Hvordan forbedrer man produktiviteten ved hjælp af arkitektur?
Bedste fremgangsmåder til forbedring af kodeydeevne.
Hjemmearbejde – 2 timer.
Modul 2. GC-algoritmer – 5 timer.
Hukommelsesbrug af Java-objekter;
Generelle tilgange og algoritmer for skraldeopsamlere;
Seriel GC Garbage Collector;
Parallel GC skraldeopsamler;
CMS skraldeopsamler;
Skraldeopsamler G1;
Shenandoah Garbage Collector;
Tuning af affaldssamlere;
Værktøjer til indsamling og analyse af affaldsindsamlingsmetrik;
Valg af den optimale skraldeopsamler.
Modul 3. HotSpot JIT compiler – 5 timer.
JIT kompilering;
Java bytekode;
flerlags kompilering;
Kodecache og dens tuning;
Kode optimering;
Kode deoptimering og hvornår det sker;
JITWatch værktøj til at analysere kompileringsresultater;
Typer af optimeringer;
Spekulative optimeringer;
Compiler indstillinger;
AOT kompilering.
Hjemmearbejde – 2 timer.
Modul 4. JVM flag - 3 timer.
Formål og kategorier af JVM-flag;
Generelle flag;
Flag forbundet med strenge;
Hukommelsesstyringsflag;
Sikkerhedspunkter og flag forbundet med dem;
TLAB og flag forbundet med dem;
JVM tuning plan.
Modul 5. Test af ydeevnen af algoritmer (benchmarking) ved hjælp af JMH – 2 timer.
Hvad er benchmarking;
Introduktion til JMH;
JMH API;
Ikke-trivielle eksempler;
Anvendelse af JMH i praksis.
Hjemmearbejde – 2 timer.
Modul 6. Brug af hukommelse uden for heapen (off-heap hukommelse) – 3 timer.
Hvad er sun.divers. Usikre;
Usikre metoder;
Native hukommelse ydeevne;
Oprettelse af datastrukturer i native hukommelse;
Evaluering af native memory performance og sammenligning med heap memory;
Lovende Foreign Memory Access API.
Modul 7. Serialisering – 2 timer.
JSON serializers (GSON, Jackson);
Binære serializers (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Sammenligning af ydeevnen af forskellige serializers.
Modul 8. Java-profilering – 4 timer.
Hvornår og hvordan laver man profilering?
Prøveudtagning og instrumenteringsprofilere;
Brug af Java VisualVM til profilering;
Profilering med Spring AOP;
Profilering med IDEA og async profiler;
Java Flight Recorder;
Analyse af Java Flight Recorder-logfiler ved hjælp af Mission Conrol;
Oprettelse og logning af tilpassede JFR-begivenheder;
Brug af Java-agenter til at indlejre kode og optage eventuelle hændelser i Java Flight Recorder;
Skrive programmer til automatisk analyse af JFR logs;
Indsamling og analyse af SQL-forespørgsler ved hjælp af JFR;
Indsamling og analyse af REST-anmodninger ved hjælp af JFR.
Hjemmearbejde – 2 timer.
Modul 9. Overvågning og analyse af heap-data. Hukommelseslækager – 2 timer.
In-memory dataanalyseværktøjer;
Tegn på hukommelseslækager;
De vigtigste årsager til hukommelseslækager;
Søg og opdag hukommelseslækager.
Modul 10. GraalVM – 3 timer
GraalVM økosystem;
GraalVM runtime;
Polyglot API;
Kompilering og native billede;
Benchmarks.
Modul 11. Caching i Java-applikationer - 3 timer.
Caching mønstre;
Sammenligning af cache API'er;
Caching af databaseforespørgsler;
Caching af HTTP-anmodninger;
Grundlæggende målinger og indstillinger for cachebiblioteker;
Sammenligning af populære cachebiblioteker;
Caching på serviceniveau;
Caching Spring tjenester;
Applikationer, der bruger caches på forskellige niveauer.
Modul 12. Gennemgang af andre tilgange til forbedring af produktiviteten - 3 timer.
Parallel programmering (trådpuljer, parallelle gevind, gaffelforbindelsesstruktur);
Asynkron programmering;
Reaktiv programmering (Reactor, VertX);
Optimering af arbejde med databaser;
Cloud computing (mikrotjenester, Spring Cloud);
Benchmarks og konklusioner.