Java Advanced II: High Performance Java

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

Alege oras Online Pret
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 3800 RON
Bucuresti 3800 RON
Cracovia 3800 RON
Wroclaw 3800 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. La preturile afisate se adauga TVA.

+0+

Inscrie-te!

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