Java Advanced II: augstas veiktspējas Java — kurss RUB 67 500. no IBS Mācību centra, apmācības 40 stundas, Datums 29.01.2024.
Literārs Mistrojums / / December 04, 2023
Pāvels uzņēmumā Luxoft strādā kopš 2005. gada. Šajā laikā viņš piedalījās vairākos vadošo Krievijas un ārvalstu uzņēmumu projektos, piemēram, Boeing, Krievijas pasts, DHL, MVideo. Pašlaik viņš pilda vadošā programmatūras inženiera lomu projektā, lai atbalstītu lielāko mazumtirdzniecības ķēdi, kas pārdod elektroniku un sadzīves tehniku Krievijā. Pāvela galvenā interese ir mērogojamu Java lietojumprogrammu izstrāde un tehnisko risinājumu nodrošināšana lietojumprogrammu veiktspējas un uzticamības uzlabošanai.
Apskatītās tēmas:
1. modulis. Performance Tuning Review – 5 stundas.
Vispārējās prakses;
Veiktspējas regulēšanas stratēģijas;
Veiktspējas rādītāji;
Kā uzlabot produktivitāti?
Veiktspējas mērīšanas instrumenti;
JMeter;
Slodzes pārbaude, izmantojot JMeter;
Kā uzlabot produktivitāti, izmantojot arhitektūru?
Paraugprakse koda veiktspējas uzlabošanai.
Mājas darbs – 2 stundas.
2. modulis. GC algoritmi – 5 stundas.
Java objektu atmiņas izmantošana;
Atkritumu savācēju vispārīgās pieejas un algoritmi;
Sērijveida GC atkritumu savācējs;
Paralēlais GC atkritumu savācējs;
CMS atkritumu savācējs;
Atkritumu savācējs G1;
Shenandoah atkritumu savācējs;
Atkritumu savācēju regulēšana;
Instrumenti atkritumu savākšanas metriku savākšanai un analīzei;
Optimālā atkritumu savācēja izvēle.
3. modulis. HotSpot JIT kompilators – 5 stundas.
JIT kompilācija;
Java baitkods;
Daudzslāņu kompilācija;
Kodu kešatmiņa un tās regulēšana;
Koda optimizācija;
Koda deoptimizācija un kad tā notiek;
JITWatch rīks apkopošanas rezultātu analīzei;
Optimizācijas veidi;
Spekulatīvas optimizācijas;
Kompilatora iestatījumi;
AOT apkopojums.
Mājas darbs – 2 stundas.
4. modulis. JVM karogi - 3 stundas.
JVM karogu mērķis un kategorijas;
Vispārējie karogi;
Karogi, kas saistīti ar stīgām;
Atmiņas pārvaldības karodziņi;
Droši punkti un ar tiem saistītie karogi;
TLAB un ar tiem saistītie karogi;
JVM tūninga plāns.
5. modulis. Algoritmu veiktspējas pārbaude (benchmarking), izmantojot JMH – 2 stundas.
Kas ir salīdzinošā novērtēšana;
Ievads JMH;
JMH API;
Netriviāli piemēri;
JMH pielietojums praksē.
Mājas darbs – 2 stundas.
6. modulis. Atmiņas izmantošana ārpus kaudzes (off-heap memory) – 3 stundas.
Kas ir saule.dažādi. Nedrošs;
Nedrošas metodes;
Vietējās atmiņas veiktspēja;
Datu struktūru izveide vietējā atmiņā;
Vietējās atmiņas veiktspējas novērtējums un salīdzinājums ar kaudzes atmiņu;
Daudzsološa ārvalstu atmiņas piekļuves API.
7. modulis. Serializācija – 2 stundas.
JSON serializatori (GSON, Jackson);
Binārie seriālisti (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Dažādu serializētāju veiktspējas salīdzināšana.
8. modulis. Java profilēšana – 4 stundas.
Kad un kā veikt profilēšanu?
Paraugu ņemšanas un instrumentu profilētāji;
Java VisualVM izmantošana profilēšanai;
Profilēšana ar Spring AOP;
Profilēšana ar IDEA un asinhrono profilētāju;
Java lidojumu ierakstītājs;
Java Flight Recorder žurnālu analīze, izmantojot Mission Conrol;
Pielāgotu JFR notikumu izveide un reģistrēšana;
Java aģentu izmantošana, lai iegultu kodu un ierakstītu notikumus Java lidojumu ierakstītājā;
Programmu rakstīšana JFR žurnālu automātiskai analīzei;
SQL vaicājumu vākšana un analīze, izmantojot JFR;
REST pieprasījumu savākšana un analīze, izmantojot JFR.
Mājas darbs – 2 stundas.
9. modulis. Kaudzes datu uzraudzība un analīze. Atmiņas noplūdes – 2 stundas.
Atmiņas datu analīzes rīki;
Atmiņas noplūdes pazīmes;
Galvenie atmiņas noplūdes cēloņi;
Meklējiet un atklājiet atmiņas noplūdes.
10. modulis. GraalVM – 3 stundas
GraalVM ekosistēma;
GraalVM izpildlaiks;
Polyglot API;
Kompilācija un vietējais attēls;
Etaloni.
11. modulis. Kešatmiņa Java lietojumprogrammās - 3 stundas.
Kešatmiņas modeļi;
Kešatmiņas API salīdzinājums;
Datu bāzes vaicājumu saglabāšana kešatmiņā;
HTTP pieprasījumu saglabāšana kešatmiņā;
Kešatmiņas bibliotēku pamatmetrika un iestatījumi;
Populāru kešatmiņas bibliotēku salīdzinājums;
Pakalpojuma līmeņa kešatmiņa;
Kešatmiņas pavasara pakalpojumi;
Lietojumprogrammas, kas izmanto dažāda līmeņa kešatmiņas.
12. modulis. Pārskats par citām pieejām produktivitātes uzlabošanai - 3 stundas.
Paralēlā programmēšana (vītņu kopas, paralēlās vītnes, fork-join struktūra);
Asinhronā programmēšana;
Reaktīvā programmēšana (Reactor, VertX);
Darba ar datu bāzēm optimizācija;
Mākoņdatošana (mikropakalpojumi, Spring Cloud);
Etaloni un secinājumi.