Java Performance And Tuning

Code:
JVA-028
Duration:
16 hours
Description:
All Java applications need to be efficient in terms of memory footprint and processing throughput. But allocating a larger amount of memory or switching to a more powerful CPU is not always good approach.

Our Java Performance and Tuning course is an intensive training targeting experienced and advanced software developers who are looking to expand their knowledge in order to discover how to tune Java applications either by choosing the appropriate way of memory allocation, the best Garbage Collector algorithm or the most suitable way of using the JDK API.

Every developer should properly understand how to make a program efficient in terms of memory footprint or performance throughput. He should also have a good understanding about what happens inside the Java Virtual Machine. Knowing all of these issues means that memory allocation challenges or slow processing time can be easily detected and fixed, or prevented.

This course covers topics like JVM architecture, execution engine, memory model, garbage collectors, JVM tuning, JVM profiling and troubleshooting, analyzing case studies from a performance standpoint and presenting performance code best practices (tips and tricks).

The idea behind the course is that in order to be a good developer, writing good code is not enough. You also need to know how to look under the hood and think about how that code could behave better and positively influence performance metrics.
Target Audience:
Advanced or experienced Java developers keen on learning how performance can be achieved or increased by understanding JVM internals, how to tune and profile the JVM and how to write performant code.
Objectives:
The aim of this course is to give a better understanding of what the Java Virtual Machine means in terms of:

  • Execution Engine
  • Memory Model
  • Garbage Collectors
  • Performance JDK APIs
  • Performance tactics
  • Profiling tools
  • Troubleshooting techniques
It helps programmers in tuning, profiling and troubleshooting the JVM, by analyzing and understanding dumps (heap, thread) in order to figure out possible processing bottlenecks that might occur

Getting familiar with profiling tools (either OS built-in or provided by JDK) and troubleshooting techniques is another target for the course

Java performance is tightly coupled with a few tactics and JDK APIs every developer should know. The right JDK APIs and tactics are presented to achieve best performance
Roadmap:
Execution Engine
  • Bytecode Interpreter
  • Just In Time Compiler
Java Memory Model
  • Stack
  • Heap
  • PermGen
  • Metaspace
  • Code Cache
Java Garbage Collection
  • Serial Collector
  • Parallel Collector
  • Parallel Compacting Collector
  • Concurrent Mark-Sweep Collector
  • Garbage First Collector
Garbage Collection Friendly Programming
JVM Tuning
JVM Profiling
  • OS built-it tools
  • JDK tools
JVM Troubleshooting
Performance Friendly Programming (Tips & Tricks)
Prerequisites:
Good understanding of Java Core principles
  • Multithreading
  • Collections
  • Object creation lifecycle
  • Garbage Collector principles
Basic understanding of how CPU and Memory works
Recommended Reading:
  1. http://java-performance.com/
  2. http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals/
  3. http://www.oracle.com/technetwork/java/javase/memorymanagement-whitepaper-150215.pdf
  4. “Java Performance Tuning” - Jack Shirazi
Price:
€ 350
Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. For individual participants the price is as displayed. For legal entities VAT is added to the displayed price.

Courses you may be interested in:

Location Price (plus VAT)
Bucharest 350 Euro
Krakow 350 Euro
Wroclaw 350 Euro

Sign up for Java Performance And Tuning