DUBLIN| 11-12 Dec BOOK



GuruTeam is delighted to launch Ben Evans’ Optimizing Java course which is adapted from his current O’Reilly book Optimizing Java.

About the course

  Download Optimising Java course flyer here

Adapted from the brand new O’Reilly book of the same name, this 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.

Ben Evans (Course Instructor)

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.


Course Description


Covering JVM internals, bytecode, classloading, garbage collection analysis and tuning as well as JIT compilation, application profiling and language-level techniques; this course also contains hands-on labs and a wealth of directly-applicable knowledge that will allow engineers to gain deep insight into their performance problems and how to fix them.


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


Course Set-up

(hardware and software requirements)

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



2 Days


Target Audience

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 Pre-Requisites

  • Proficiency in Java development
  • A working knowledge of the Java runtime environment
  • Minimum 2-4 years Java Development experience


Suggested Follow on Courses

There are many options of suitable follow-on courses.  Here is one suggestion, it’s a new and very interesting hands-on workshop which Ben Evans has developed and launched in 2017:

Have a look at the courses HERE. If you cannot find what you are looking for please contact us as we have over 30 Java and Java EE courses in our training curriculum.


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

See more Java courses