Java Advanced II: Korkean suorituskyvyn Java - kurssi 67 500 RUB. IBS Training Centeristä, koulutus 40 tuntia, päivämäärä 29.1.2024.
Miscellanea / / December 04, 2023
Pavel on työskennellyt Luxoftissa vuodesta 2005. Tänä aikana hän osallistui useisiin projekteihin johtaville venäläisille ja ulkomaisille yrityksille, kuten Boeing, Russian Post, DHL, MVideo. Tällä hetkellä hän toimii johtavana ohjelmistoinsinöörinä projektissa, joka tukee Venäjän suurinta elektroniikkaa ja kodinkoneita myyvää vähittäiskauppaketjua. Pavelin pääintressi on skaalautuvien Java-sovellusten kehittäminen ja teknisten ratkaisujen tarjoaminen sovellusten suorituskyvyn ja luotettavuuden parantamiseksi.
Käsitellyt aiheet:
Moduuli 1. Suorituskyvyn virityksen tarkistus – 5 tuntia.
Yleiset käytännöt;
Suorituskyvyn viritysstrategiat;
Suorituskykymittarit;
Kuinka parantaa tuottavuutta?
Suorituskyvyn mittaustyökalut;
JMeter;
Kuormitustestaus JMeterillä;
Kuinka parantaa tuottavuutta arkkitehtuurilla?
Parhaat käytännöt koodin suorituskyvyn parantamiseksi.
Kotitehtävät - 2 tuntia.
Moduuli 2. GC-algoritmit – 5 tuntia.
Java-objektien muistin käyttö;
Jätteenkeräilijöiden yleiset lähestymistavat ja algoritmit;
GC-sarjan roskakori;
Rinnakkais GC-jätteenkerääjä;
CMS Roskakori;
Jätteenkerääjä G1;
Shenandoah Garbage Collector;
Jätteenkeräilijöiden viritys;
Työkalut jätteenkeräysmittareiden keräämiseen ja analysointiin;
Optimaalisen jätteenkeräimen valinta.
Moduuli 3. HotSpot JIT -kääntäjä – 5 tuntia.
JIT-kokoelma;
Java-tavukoodi;
Monikerroksinen kokoelma;
Koodivälimuisti ja sen viritys;
Koodin optimointi;
Koodin deoptimointi ja milloin se tapahtuu;
JITWatch-työkalu kokoamistulosten analysointiin;
Optimointityypit;
Spekulatiiviset optimoinnit;
Kääntäjän asetukset;
AOT kokoelma.
Kotitehtävät - 2 tuntia.
Moduuli 4. JVM-liput - 3 tuntia.
JVM-lippujen tarkoitus ja luokat;
Yleiset liput;
merkkijonoihin liittyvät liput;
Muistinhallinnan liput;
Turvapisteet ja niihin liittyvät liput;
TLAB ja niihin liittyvät liput;
JVM virityssuunnitelma.
Moduuli 5. Algoritmien suorituskyvyn testaus (benchmarking) JMH: lla – 2 tuntia.
Mikä on benchmarking;
JMH: n esittely;
JMH API;
Ei-triviaaleja esimerkkejä;
JMH: n soveltaminen käytännössä.
Kotitehtävät - 2 tuntia.
Moduuli 6. Muistin käyttö kasan ulkopuolella (off-heap-muisti) – 3 tuntia.
Mikä on sun.misc. Turvaton;
Vaaralliset menetelmät;
Alkuperäisen muistin suorituskyky;
Tietorakenteiden luominen alkuperäiseen muistiin;
Natiivimuistin suorituskyvyn arviointi ja vertailu kasomuistiin;
Lupaava Foreign Memory Access API.
Moduuli 7. Sarjointi - 2 tuntia.
JSON-serialisoijat (GSON, Jackson);
Binaariset serialisaattorit (Protobuf, Jackson Smile, Kryo, FST, One NIO);
Vertaa eri serialisaattorien suorituskykyä.
Moduuli 8. Java-profilointi – 4 tuntia.
Milloin ja miten profilointi tehdään?
Näytteenotto- ja instrumentointiprofiloijat;
Java VisualVM: n käyttö profilointiin;
Profilointi Spring AOP: lla;
Profilointi IDEA: lla ja asyncprofiloijalla;
Java Flight Recorder;
Java Flight Recorder -lokien analyysi Mission Conrolilla;
Mukautettujen JFR-tapahtumien luominen ja kirjaaminen;
Java-agenttien käyttö koodin upottamiseen ja tapahtumien tallentamiseen Java Flight Recorderiin;
Kirjoitusohjelmat JFR-lokien automaattiseen analysointiin;
SQL-kyselyiden kerääminen ja analysointi JFR: ää käyttäen;
REST-pyyntöjen kerääminen ja analysointi JFR: n avulla.
Kotitehtävät - 2 tuntia.
Moduuli 9. Kasatietojen seuranta ja analysointi. Muistivuotoja - 2 tuntia.
Muistissa olevat tietojen analysointityökalut;
Merkkejä muistivuotojsta;
Muistivuotojen tärkeimmät syyt;
Etsi ja havaitse muistivuotoja.
Moduuli 10. GraalVM - 3 tuntia
GraalVM-ekosysteemi;
GraalVM-ajoaika;
Polyglot API;
Kokoelma ja alkuperäinen kuva;
Vertailuarvot.
Moduuli 11. Välimuisti Java-sovelluksissa - 3 tuntia.
Välimuistikuviot;
Välimuistisovellusliittymien vertailu;
Tietokantakyselyjen välimuistiin tallentaminen;
HTTP-pyyntöjen välimuisti;
Välimuistikirjastojen perusmittarit ja -asetukset;
Suosittujen välimuistikirjastojen vertailu;
Palvelutason välimuisti;
Kevään välimuistipalvelut;
Sovellukset, jotka käyttävät eri tasoisia välimuistia.
Moduuli 12. Katsaus muihin lähestymistapoihin tuottavuuden parantamiseksi - 3 tuntia.
Rinnakkaisohjelmointi (kierteet, rinnakkaislangat, haarukkaliitosrakenne);
Asynkroninen ohjelmointi;
Reaktiivinen ohjelmointi (Reactor, VertX);
Tietokantojen käytön optimointi;
Cloud computing (mikropalvelut, Spring Cloud);
Vertailuarvot ja johtopäätökset.