Title of the webinar: Java Performance Techniques. The Cost of Runtime Optimizations
Short description:
The talk reveals how HotSpot/OpenJDK internally manages some performance optimizations (e.g. static, speculative and inter-procedural) which can sometimes help Java code run faster than similar C/C++ code. It will also cover the penalty of code de-optimizations (e.g. uncommon traps, de-virtualization), which brings the current running thread back to the interpreter. For each optimization Java and assembly code will be presented to prove to the audience what really happens under the hood. At the end of each optimization technique there will be suggestions about the best cases to apply, as well as things which might impact the runtime performance.
Core topics of the agenda:

  • Uncommon traps
  • Null Sanity Checks (e.g. handled natively by hardware)
  • De-virtualization
  • Loop unrolling, loop peeling, and loop rerolling
  • String deduplication
  • Biased locking and the cost of Stop-The-World pauses
  • Inter-procedural optimizations
  • Concurrency implications
  • Methods that do not JIT