Java Advanced II: Java de înaltă performanță - curs 67.500 RUB. de la IBS Training Center, training 40 ore, Data 29 ianuarie 2024.
Miscelaneu / / December 04, 2023
Pavel lucrează la Luxoft din 2005. În acest timp, a participat la o serie de proiecte pentru companii de top din Rusia și străinătate, precum Boeing, Russian Post, DHL, MVideo. În prezent, el joacă rolul de inginer software principal într-un proiect de sprijinire a celui mai mare lanț de vânzare cu amănuntul de electronice și electrocasnice din Rusia. Principalul interes al lui Pavel este dezvoltarea aplicațiilor Java scalabile și furnizarea de soluții tehnice pentru a îmbunătăți performanța și fiabilitatea aplicațiilor.
Subiecte acoperite:
Modulul 1. Revizuirea reglajului performanței – 5 ore.
Practici generale;
Strategii de reglare a performanței;
Măsuri de performanță;
Cum să îmbunătățim productivitatea?
Instrumente de măsurare a performanței;
JMeter;
Testare de încărcare folosind JMeter;
Cum să îmbunătățiți productivitatea folosind arhitectura?
Cele mai bune practici pentru îmbunătățirea performanței codului.
Tema pentru acasă – 2 ore.
Modulul 2. Algoritmi GC – 5 ore.
Utilizarea memoriei obiectelor Java;
Abordări generale și algoritmi ai colectorilor de gunoi;
Serial GC Garbage Collector;
Colector de gunoi GC paralel;
Colector de gunoi CMS;
Colector de gunoi G1;
Colector de gunoi Shenandoah;
Tuning colectoare de gunoi;
Instrumente pentru colectarea și analizarea valorilor de colectare a gunoiului;
Alegerea colectorului de gunoi optim.
Modulul 3. Compilatorul HotSpot JIT – 5 ore.
compilare JIT;
cod octet Java;
compilare multistrat;
Cache de cod și reglarea acestuia;
Optimizarea codului;
Deoptimizarea codului și când apare;
Instrument JITWatch pentru analiza rezultatelor compilației;
Tipuri de optimizări;
Optimizări speculative;
Setările compilatorului;
compilare AOT.
Tema pentru acasă – 2 ore.
Modulul 4. Indicatori JVM - 3 ore.
Scopul și categoriile de steaguri JVM;
Steaguri generale;
Steaguri asociate cu șiruri;
Steaguri de gestionare a memoriei;
Puncte de siguranță și steaguri asociate acestora;
TLAB și steaguri asociate acestora;
Plan de reglare JVM.
Modulul 5. Testarea performanței algoritmilor (benchmarking) folosind JMH – 2 ore.
Ce este benchmarking-ul;
Introducere în JMH;
JMH API;
Exemple non-triviale;
Aplicarea JMH în practică.
Tema pentru acasă – 2 ore.
Modulul 6. Utilizarea memoriei în afara heap (memorie off-heap) – 3 ore.
Ce este soarele.misc. Nesigur;
Metode nesigure;
Performanța memoriei native;
Crearea structurilor de date în memoria nativă;
Evaluarea performanței memoriei native și compararea cu memoria heap;
API-ul de acces la memorie străină promițător.
Modulul 7. Serializare – 2 ore.
Serializatoare JSON (GSON, Jackson);
Serializatoare binare (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Compararea performanțelor diferitelor serializatoare.
Modulul 8. Profilare Java – 4 ore.
Când și cum se face profilare?
Profileri de eșantionare și instrumentare;
Utilizarea Java VisualVM pentru profilare;
Profilare cu Spring AOP;
Profilare cu IDEA și profiler asincron;
Java Flight Recorder;
Analiza jurnalelor Java Flight Recorder folosind Mission Conrol;
Crearea și înregistrarea evenimentelor JFR personalizate;
Utilizarea agenților Java pentru a încorpora codul și a înregistra orice evenimente în Java Flight Recorder;
Scrierea de programe pentru analiza automată a jurnalelor JFR;
Colectarea și analiza interogărilor SQL folosind JFR;
Colectarea și analiza cererilor REST folosind JFR.
Tema pentru acasă – 2 ore.
Modulul 9. Monitorizarea și analizarea datelor heap. Scurgeri de memorie – 2 ore.
Instrumente de analiză a datelor în memorie;
Semne de scurgeri de memorie;
Principalele cauze ale pierderilor de memorie;
Căutați și detectați scurgeri de memorie.
Modulul 10. GraalVM – 3 ore
Ecosistemul GraalVM;
GraalVM runtime;
Polyglot API;
Compilare și imagine nativă;
Benchmark-uri.
Modulul 11. Memorarea în cache în aplicații Java - 3 ore.
Modele de stocare în cache;
Comparația API-urilor cache;
Memorarea în cache a interogărilor bazei de date;
Memorarea în cache a solicitărilor HTTP;
Valori de bază și setări ale bibliotecilor de cache;
Compararea bibliotecilor de cache populare;
Memorarea în cache la nivel de serviciu;
Servicii de caching Spring;
Aplicații care folosesc cache-uri de diferite niveluri.
Modulul 12. Revizuirea altor abordări pentru îmbunătățirea productivității - 3 ore.
Programare paralelă (pool de fire, fire paralele, structură fork-join);
Programare asincronă;
Programare reactiva (Reactor, VertX);
Optimizarea lucrului cu baze de date;
Cloud computing (microservicii, Spring Cloud);
Criterii de referință și concluzii.