Extreme Java Performance Tuning

Extreme Java Performance Tuning

This course covers everything there is to know about java performance with details and tips throughout the development lifecycle, from planning to development to profiling and tuning in the lab or in production.

 

individual chapters will discuss memory management, garbage collection, just in time compiler, multithreading, collections, sdk tips, native memory, profiling, monitoring, analyzing heap dumps and thread dumps.

Module 1 – Introduction to Performance

  • Perceived performance 
  • Developing high performance software 
  • Capacity Planning
  • Performance KPIs
  • Performance Testing 
  • Performance Testing tools 
  • Coding for performance 
  • Microbenchmarks 

Module 2 – Monitoring the OS

  • CPU
  • IO 
  • Network
  • Windows 
  • Linux 
  • CPU And Java

Module 3 – Java Monitoring Tools 

  • JVisualVM
  • JMC
  • JFR
  • Linux command line 

Module 4 – JIT Compiler 

  • Compiler Types
  • Compiler Levels 
  • Compiler Flags 
  • Code cache
  • Compilation thresholds 
  • OSR
  • Optimizations 
  • Deoptimizations 
  • Monitoring compilation 

Module 5 – Memory 

  • JVM Memory model
  • Tuning Memory 
  • Heap Dumps
  • Histograms 
  • Troubleshooting memory issues 
  • Canonical Objects 
  • Object Lifecycle
  • Object Pools and Object Reuse 
  • Thread Local 
  • Reference API (Weak, Soft, Phantom)

Module 6 – JSE Performance 

  • Buffered IO
  • Classloading 
  • Random
  • Exceptions 
  • Strings 
  • Collection API

Module 7 – Garbage Collection 

  • In depth review of GC algorithms 
  • Batch VS Online 
  • GC Optimizations 
  • GC Flags 
  • Best Practices 

Module 8 – Multithreading 

  • Thread Pools 
  • ForkJoinPool
  • Automatic Parallelization 
  • Synchronization
  • Compare And Swap
  • Monitoring Threads 

Module 9 – JEE Performance

  • Web Container Performance 
  • EJB 3 Session beans
  • XML & XML Validation 
  • JSON
  • Factories 

Module 10 – JDBC and DB Performance

  • JDBC Driver Types 
  • Prepared Statements 
  • Statement pools 
  • JDBC Connection Pools 

Module 11 – Native Memory 

  • Basic Concepts 
  • NMT (Native Memory Tracking)

good working knowledge of java

3 Days (24 hours)

השתתפות ב80% מהקורס

לשיחה / תאום פגישה עם יועץ לימודים: