Java Advanced II: didelio našumo Java – kursas 67 500 RUB. iš TVM mokymo centro, mokymas 40 val., Data 2024 m. sausio 29 d.
įvairenybės / / December 04, 2023
Pavelas „Luxoft“ dirba nuo 2005 m. Per tą laiką jis dalyvavo daugelyje pirmaujančių Rusijos ir užsienio kompanijų projektų, tokių kaip „Boeing“, „Russian Post“, „DHL“, „MVideo“. Šiuo metu jis atlieka pagrindinio programinės įrangos inžinieriaus vaidmenį projekte, kuriuo remiamas didžiausias mažmeninės prekybos tinklas, prekiaujantis elektronika ir buitine technika Rusijoje. Pagrindinis Pavelo interesas yra keičiamo dydžio „Java“ programų kūrimas ir techninių sprendimų teikimas programų našumui ir patikimumui pagerinti.
Aptariamos temos:
1 modulis. Performance Tuning Review – 5 val.
Bendrosios praktikos;
Našumo derinimo strategijos;
Našumo rodikliai;
Kaip pagerinti produktyvumą?
Veiklos matavimo įrankiai;
JMeter;
Apkrovos testavimas naudojant JMeter;
Kaip padidinti produktyvumą naudojant architektūrą?
Geriausia kodo našumo gerinimo praktika.
Namų darbai – 2 val.
2 modulis. GC algoritmai – 5 val.
Java objektų atminties naudojimas;
Bendrieji šiukšlių surinkėjų požiūriai ir algoritmai;
Serijinis GC šiukšlių surinkėjas;
Lygiagretus GC šiukšlių surinkėjas;
TVS šiukšlių surinkėjas;
Šiukšlių rinktuvas G1;
Shenandoah šiukšlių surinkėjas;
Šiukšlių surinkėjų derinimas;
Šiukšlių surinkimo metrikų rinkimo ir analizės įrankiai;
Optimalaus šiukšlių surinkėjo pasirinkimas.
3 modulis. HotSpot JIT kompiliatorius – 5 val.
JIT kompiliavimas;
Java baito kodas;
Daugiasluoksnis kompiliavimas;
Kodo talpykla ir jos derinimas;
Kodo optimizavimas;
Kodo deoptimizavimas ir kada jis įvyksta;
JITWatch įrankis kompiliavimo rezultatams analizuoti;
Optimizavimo tipai;
Spekuliacinis optimizavimas;
Kompiliatoriaus nustatymai;
AOT kompiliacija.
Namų darbai – 2 val.
4 modulis. JVM vėliavėlės – 3 val.
JVM vėliavėlių paskirtis ir kategorijos;
Bendrosios vėliavos;
Vėliavos, susietos su stygomis;
Atminties valdymo vėliavėlės;
Saugūs taškai ir su jais susijusios vėliavėlės;
TLAB ir su jais susijusios vėliavėlės;
JVM derinimo planas.
5 modulis. Algoritmų veikimo testavimas (benchmarking) naudojant JMH – 2 val.
Kas yra lyginamoji analizė;
Įvadas į JMH;
JMH API;
Nebanalūs pavyzdžiai;
JMH taikymas praktikoje.
Namų darbai – 2 val.
6 modulis. Atminties naudojimas už krūvos ribų (off-heap memory) – 3 val.
Kas yra saulė.įvairūs. Nesaugus;
Nesaugūs metodai;
Natūralios atminties našumas;
Duomenų struktūrų kūrimas gimtojoje atmintyje;
Natūralios atminties našumo įvertinimas ir palyginimas su krūvos atmintimi;
Perspektyvi užsienio atminties prieigos API.
7 modulis. Serializavimas – 2 val.
JSON serializatoriai (GSON, Jackson);
Dvejetainiai serializatoriai (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Skirtingų serializatorių našumo palyginimas.
8 modulis. Java profiliavimas – 4 val.
Kada ir kaip atlikti profiliavimą?
Mėginių ėmimo ir prietaisų profiliuotojai;
Java VisualVM naudojimas profiliavimui;
Profiliavimas su Spring AOP;
Profiliavimas su IDEA ir asinchroniniu profiliuotoju;
„Java“ skrydžių įrašymo įrenginys;
„Java Flight Recorder“ žurnalų analizė naudojant „Mission Conrol“;
Pasirinktinių JFR įvykių kūrimas ir registravimas;
„Java“ agentų naudojimas kodui įterpti ir bet kokiems įvykiams įrašyti „Java Flight Recorder“;
Rašymo programos automatinei JFR žurnalų analizei;
SQL užklausų rinkimas ir analizė naudojant JFR;
REST užklausų rinkimas ir analizė naudojant JFR.
Namų darbai – 2 val.
9 modulis. Stebėti ir analizuoti krūvos duomenis. Atminties nutekėjimas – 2 val.
Duomenų analizės įrankiai atmintyje;
Atminties nutekėjimo požymiai;
Pagrindinės atminties nutekėjimo priežastys;
Ieškokite ir aptikkite atminties nutekėjimą.
10 modulis. GraalVM – 3 valandos
GraalVM ekosistema;
GraalVM vykdymo laikas;
Polyglot API;
Kompiliacija ir vietinis vaizdas;
Etalonai.
11 modulis. Talpyklos talpinimas Java programose – 3 valandos.
Talpyklos šablonai;
Talpyklos API palyginimas;
Duomenų bazės užklausų kaupimas talpykloje;
HTTP užklausų kaupimas talpykloje;
Pagrindinės talpyklos bibliotekų metrikos ir nustatymai;
Populiarių talpyklų bibliotekų palyginimas;
Paslaugos lygio talpinimas;
Pavasario talpyklos paslaugos;
Programos, kurios naudoja skirtingų lygių talpyklas.
12 modulis. Kitų produktyvumo didinimo būdų apžvalga – 3 val.
Lygiagretusis programavimas (sriegių telkiniai, lygiagrečiai sriegiai, šakių sujungimo struktūra);
Asinchroninis programavimas;
Reaktyvusis programavimas (Reactor, VertX);
Darbo su duomenų bazėmis optimizavimas;
Debesų kompiuterija (mikropaslaugos, Spring Cloud);
Gairės ir išvados.