Java Advanced II: High Performance Java

Afla cum poti sa imbunatatesti performanta aplicatiilor Java.
Cod: JVA-076
Durata: 40 ore

Descriere

In cadrul acestui training vom discuta despre diferite abordari legate de profiling, identificarea bottlenecks, tuning al unei virtual machine, setarea JVM flags, serialization si caching libraries. Ne vom uita si la off-heap data storage, benchmarking, memory monitoring si tunare precum si o multitudine de alte subiecte.

Subiecte curs

Prezentare performance tuning
  • Practici comune
  • Strategii de tuning
  • Metrici legate de performanta (latency, throughput, bandwidth)
  • Cum sa imbunatatim performanta
  • Instrumente de masurare a performantei
  • JMeter
  • Scrierea de load tests cu JMeter
  • Cum sa imbunatatim performanta prin arhitectura software
  • Bune practici pentru imbunatatirea performantei codului

Algoritmi GC
  • Utilizarea memoriei de catre obiectele Java
  • Abordari comune si algoritmi ale garbage collectors
  • Serial GC garbage collector
  • Parallel GC garbage collector
  • CMS garbage collector
  • G1 garbage collector
  • Shenandoah garbage collector
  • Garbage collectors tuning
  • Instrumente pentru a colecta metrici legate garbage collection
  • Cum sa selectam garbage collector potrivit

HotSpot JIT compiler
  • IT compilation
  • Java byte code
  • Tiered compilation
  • Code cache &tuning
  • Optimizari de cod
  • Code deoptimization (si cand se intampla)
  • JITWatch instrument pentru a analiza compilarea rezultatelor
  • Tipuri de optimizari
  • Optimizari speculative
  • Compiler tuning
  • Compilarea AOT

JVM flags
  • Scopul si categoriile JVM flags
  • Common flags
  • String-related flags
  • Memory management flags
  • Safepoints and related flags
  • TLABs and related flags
  • JVM tuning plan

Java benchmarking cu JMH
  • Ce este benchmarking?
  • Introducere in JMH
  • API al JMH
  • Exemple
  • Practica JMH

Folosirea off-heap memory
  • Ce este sun.misc.Unsafe?
  • Metode nesigure
  • Performanta memoriei native
  • Crearea de structuri de date in memoria nativa
  • Masuratori ale performantei memoriei native (si paralela cu memory on heap)
  • Foreign Memory Access API

Serialization
  • JSON serializers (GSON, Jackson)
  • Binary serializers (Protobuf, Jackson Smile, Kryo, FST, One NIO)
  • Comparatia performantei pentru serializators diferiti

Java profiling
  • Cand si cum sa facem profiling
  • Sampling & instrumenting profilers
  • Folosirea Java VisualVM pentru profiling
  • Profiling cu Spring AOP
  • Profiling cu IDEA si async profiler
  • Java Flight Recorder
  • Analiza Java Flight Recorder logs folosind Mission Control
  • Crearea si inregistrarea JFR events
  • Folosirea Java agents in cod (pentru a inregistra evenimente in Java Flight Recorder)
  • Scrierea de programe pentru analiza automata a log-urilor JFR
  • Colectarea si analiza interogarilor SQL folosind JFR
  • Colectarea si analiza cerintelor REST folosind JFR

Monitorizarea si analiza heap data / Memory leaks
  • Instrumente de analiza a datelor in heap memory
  • Semne de memory leaks
  • Principalele cauze memory leaks
  • Cautarea si detectarea memory leaks

GraalVM
  • Ecosistemul GraalVM
  • GraalVM runtimes
  • Polyglot API
  • Compilation & Native image
  • Benchmarks

Java caching
  • Caching patterns
  • Comparison of caching API
  • Caching of database queries
  • HTTP caching
  • Metrici de baza si setari pentru caching libraries
  • Comparatii intre caching libraries populare
  • Service level caching
  • Caching Spring Services
  • Applicatii folosind caches pe layere diferite

Prezentarea altor abordari de a imbunatatii performanta
  • Parallel programming (thread pools, parallel streams, fork-join framework)
  • Asynchronous programming
  • Reactive programming (Reactor, VertX)
  • Optimizarea accesului la baza de date
  • Cloud computing (microservices, Spring Cloud)
  • Benchmarks si concluzii

Obiective

  • O introducere in abordarile pe care le poti avea pentru a imbunatatii performanta unei aplicatii Java

Public tinta

  • Programatori Java
  • Arhitecti software in Java

Trainer in Online
Bartlomiej Kuczynski Java and Software development specialist

Bartek este un programator cu peste 10 ani de experienta in domeniu. De-alungul carierei a fost implicat in proiecte de dezvoltare a sistemelor bancare de clearing si aplicatiilor de raportare si FX. In timpul sau liber Bartek invata sa lucreze cu noi limbaje si tehnici de programare si este implicat si in cateva proiecte OOS. Separat de aceste activitati are si propriul blog pe IT.

Alege oras Online Pret
Cursul este programat in: Online
6.12.2021 - 17.12.2021
Interval orar: 09:00-13:00
Fus orar: UTC +1
Loc: Online
Durata: 40 ore
Limba: English
Trainer
Bartlomiej Kuczynski
Java and Software development specialist
-10% 3 120 RON
2 808 RON
Inregistreaza-te pentru urmatorul curs.
+
Inregistrarea la urmatorul curs va asigura prioritatea pe lista de inscriere. Veti fi contactat pentru confirmarea inscrierii in momentul in care urmatorul curs este programat.
6.12.2021 - 17.12.2021
Interval orar: 09:00-13:00
Fus orar: UTC +1
Loc: Online
Durata: 40 ore
Limba: English
Trainer
Bartlomiej Kuczynski
Java and Software development specialist
-10% 3 120 RON
2 808 RON
Inregistreaza-te pentru urmatorul curs.
+
Inregistrarea la urmatorul curs va asigura prioritatea pe lista de inscriere. Veti fi contactat pentru confirmarea inscrierii in momentul in care urmatorul curs este programat.
Online 3088 RON
Bucuresti 3088 RON
Cracovia 3088 RON
Wroclaw 3088 RON

Facturile pentru curs sunt emise in moneda locala. Toate preturile de mai sus pot fi supuse modificarilor in functie de locul unde se desfasoara trainingul si modul de livrare. Preturile pot fi supuse modificarilor si in perioada in care se programeaza. Pentru persoane fizice pretul este cel afisat. Pentru persoane juridice se adauga TVA.

Inscrie-te!

Alege datele
Prenume*
Nume*
Companie
Adresa email*
Telefon
Observatii
Mai ai intrebari?
Contacteaza-ne.
Thank you.
Your request has been received.