Optimising Java with Ben Evans – one of world’s greatest Java experts

















Course dates: TBC

Time: 9:30a.m. – 5:00p.m.

Venue: Fitzgerald’s Vienna Woods Hotel, Glanmire, Cork

Training provider: Guruteam, Ben Evans

Member-subsidised fee:

Non-Subsidised fee:




Book/Request a place on this course

To book/request a place on this course please email Annette Coburn on skillnet@itcork.ie or phone on 086 0848704.


Course Description

This course will be presented by one of the world’s greatest Java experts, Ben Evans.

Ben is author of “The Well-Grounded Java Developer”, “Java: The Legend”, the new edition of “Java in a Nutshell” and the new “Optimizing Java” book and course. 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.

This unique course is presented and written by the well-known O’Reilly book Author Benjamin Evans, and 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. 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

Target Audience

Ideally suited for more senior Java developers / architects (with 4+ years of experience). Not suitable for beginners (those with less than 2 years’ experience). Also suitable for Scala (and other JVM language) developers.


Course Pre-requisites

* Proficiency in Java development

* A working knowledge of the Java runtime environment

NB: You will be required to bring a laptop to attend this course.

Course Content

Day 1:

Introduction / Setting the scene

– An overview of JVM structure and subsystems

– Objects at runtime (oops, conceptual views of GC and JIT)

– Lab: Introduction to jmap


– Why JVM performance analysis is potentially complex

– A simple system model and simple analysis techniques

– Tools and system benchmarking

– Pitfalls and best practices

– Lab: Hands-on introduction to tools

Garbage Collection

– Review of Hotspot’s heap

– Basic concepts (allocation, evacuating, exact, compacting)

– Parallel collectors

– CMS   – G1GC

GC Tuning & Tools

– Trade-offs between collectors

– GC Parameters

– GC Logging

– GC Tools (VisualGC, GCViewer, Censum)

– GC Tuning

– Lab: Spotting GC problems from tools

Day 2: Language-level performance techniques

– Java collections

– Immutable objects

– Atomic access

– sun.misc.Unsafe

– Persistent collections

– Lab: Immutable objects

JIT compilation

– Overview of JVM bytecode & classloading

– JIT compilation (low-level strategies used by HS)

– PrintCompilation & LogCompilation

– JITWatch


– Lab: Hands-on with JITWatch

Profiling (and Microbenchmarking)

– Large-scale profiling

– Microbenchmarking caveats


– Lab: JMH Hands-on

The Future: Java 9 and beyond

– Modules and their impact

– New performance enhancements


– Valhalla, Panama, GPU compute
Course Set-up (hardware and software requirements)

* Java 8 (preferred) or 7

* A suitable IDE (e.g. Netbeans, Eclipse, IntelliJ)


Book/Request a place on this course

To book/request a place on this course please email Annette Coburn on skillnet@itcork.ie or phone on 086 0848704.