Optimizing Java with Ben Evans

Optimizing Java with Ben Evans
Start Date11th December 2017
Course CodeSS17-109
Full Fee
Duration2 Days
Network Member Subsidised Fee€750.00
Download Course PDF  
  Course expired

Programme Overview

The 2-day course is designed for intermediate, advanced and expert Java developers who want to learn the detailed how and why of Java performance and how to diagnose and correct performance problems in a systematic and scientific way.

Course Objectives and Learning Outcomes

Learning Objectives

  • To diagnose and fix Java application performance problems
  • To understand the underlying architecture of the JVM and some internals
  • To understand the causes of common performance problems
  • To avoid common misconceptions and traps when performance tuning Java applications
  • To gain a basic familiarity with common Java performance tools
Who should attend
Ideally suited for more senior Java developers / architects (with 4+ years of experience). Also suitable for Scala (and other JVM language) developers. Not suitable for those with less than 2 years Java experience
Course Content

DAY 1:

Introduction / Setting the scene

  • An overview of JVM structure and subsystems
  • Objects at runtime

Lab: Introduction to jmap


  • Why JVM performance analysis is complex
  • Simple system model & simple analysis techniques
  • Tools and system benchmarking
  • Best practices & anti-patterns

Lab: Hands-on introduction to tools

Garbage Collection

  • Review of Hotspot’s heap
  • Basic concepts
  • Parallel collectors
  • CMS
  • G1GC

GC Tuning & Tools

  • Trade-offs between collectors
  • GC Parameters
  • GC Logging
  • GC Tools
  • Choosing a collector

Lab: Spotting GC problems from tools

DAY 2:

Language-level performance techniques

  • JIT compilation
  • Overview of JVM bytecode & classloading
  • Understanding JIT compilation
  • PrintCompilation & LogCompilation
  • JITWatch
  • Lab: Hands-on with JITWatch

Profiling (and Microbenchmarking)

  • Large-scale profiling
  • Microbenchmarking caveats
  • JMH

Lab: JMH Hands-on

Language-level performance techniques

  • Java collections
  • Immutable objects
  • Atomic access
  • misc.Unsafe

Lab: Immutable objects

The Future: Java 9 and beyond
– Modules and their impact
– New performance enhancements
– Valhalla, Panama, GPU compute


Other course details

You will be required to bring your laptop to attend this course.

Hardware and software requirements:

  • Java 8 (preferred) or 7
  • A suitable IDE (e.g. Netbeans, Eclipse, IntelliJ)
  • Maven
About the Trainer

Ben Evans is an author, entrepreneur, consultant and educator. His career highlights to date include: Chief Architect for Listed Derivatives at Deutsche Bank; performance testing the Google IPO; creating award-winning websites for some of Hollywood’s biggest hits of the 90s; building multibillion dollar low-latency trading systems; and utilising technology to help some of the UK’s most vulnerable people.

Ben is author of four well-known O’Reilly books: The Well-Grounded Java Developer, Java: The Legend, the new edition of Java in a Nutshell and the recently released Optimizing Java. Ben is a regular speaker and educator on topics such as the Java platform, systems architecture, security, performance and concurrency at companies and conferences all over the world. He helps run the London Java Community, and represents the user community on Java’s governing body, the JCP Executive Committee. He is a Java Champion and 3-time JavaOne Rock Star Speaker