'Y'

Java Advanced II: High Performance Java

Learn how to improve the performance of Java applications.
Code: JVA-076
Duration: 40 hours

Description

During this training we’ll cover various approaches to profiling, finding bottlenecks, tuning a virtual machine, setting JVM flags, serialization and caching libraries. We’ll also look at off-heap data storage, benchmarking, memory monitoring and tuning and a host of other topics.

Roadmap

Performance tuning overview
  • Common practices
  • Tuning strategies
  • Measurement of performance
  • How to improve performance?

GC algorithms
  • G1 garbage collector
  • ZGC/Shenandoah concurrent compaction
  • Safepoint freeze
  • Client and server mode
  • GC JVM flags
  • GC Logging flags

HotSpot JIT compiler
  • JIT and AOT compilation
  • Layers of compilation
  • Code optimizations
  • Compiler tuning
  • Compiler JVM flags

JVM flags
  • Purpose and categories of JVM flags
  • Common flags
  • String-related flags
  • Memory management flags
  • JVM tuning plan

Java profiling
  • When and how to do profiling?
  • Profiling with AOP
  • Using JProfiler
  • Using Java VisualVM
  • Instrumenting vs. Sampling
  • Java flight recorder
  • Custom profiling

Java benchmarking with JMH
  • What is benchmarking
  • Introduction to JMH
  • API of JMH
  • Untrivial examples
  • JMH practice

Java caching
  • Caching patterns
  • Local and distributed caching
  • Caches API comparison
  • Caching benchmarks

Memory monitoring and tuning
  • Memory analysis tools
  • Excessive GC analysis
  • Memory leaks analysis

Memory efficient data structures
  • Off-heap collections
  • MapDB
  • Chronicle Map
  • NIO direct byte buffers
  • NIO memory mapped files
  • Netty ByteBuf

Serialization
  • JSON serializers (GSON, Jackson)
  • Binary serializers (Protobuf, Jackson Smile, Kryo, FST, One NIO)

GraalVM
  • GraalVM ecosystem
  • GraalVM runtimes
  • Polyglot API
  • Compilation and Native image
  • Benchmarks

Overview of other approaches to improve performance
  • Parallel programming (thread pools, parallel streams, fork-join framework)
  • Reactive programming (Reactor, VertX)
  • Cloud computing (microservices, messaging, Apache Spark, AWS Lambda, Google Cloud Functions)
  • Benchmarks and conclusions

Objectives

  • An introduction to the modern approaches of improving Java applications performance

Target Audience

  • Java developers
  • Java architects


Schedule in Online Prices
Course is scheduled in: Online
17.05.2021 - 25.05.2021
Time: 09:00-17:00
City: Online
Duration: 40 hours
Language: English
Trainer
Kuczynski, Bartlomiej
€650
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
17.05.2021 - 25.05.2021
Time: 09:00-17:00
City: Online
Duration: 40 hours
Language: English
Trainer
Kuczynski, Bartlomiej
€650
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
Online €650
Bucharest €650
Krakow €650
Wroclaw €650

Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. Price does not include VAT.

Courses you may be interested in:

Sign up

Choose dates
First Name*
Last Name*
Company
Email*
Phone
Your Comment
Still have questions?
Connect with us
Thank you.
Your request has been received.
Thank you!
The form has been submitted successfully.