Java Performance And Tuning

This course covers topics like JVM architecture, memory allocation and management, Garbage Collector, profiling tools, real world case studies, JDK best practices and benchmarking.
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.

Roadmap

JVM Architecture
  • What is JVM
  • Lifetime of JVM
  • Architecture of JVM
  • Runtime Data Areas

Class Loader
  • Hierarchical model
  • Cyclic delegation trap
  • Class Data Sharing
  • Case Study

Execution Engine
  • Bytecode & Practice
  • Bytecode Interpreter
  • Ahead Of Time Compiler
  • Just In Time Compiler
  • Case Study
  • Sun JVM Source Code & Case Study

Java Memory Structure
  • Stack
  • Code Cache
  • Heap
  • PermGen
  • Metaspace & Compressed Class Space
  • Case Study

Java Garbage Collection
  • Garbage Collection Concepts
  • Heap Allocation Techniques
  • JVM Safepoint
  • HotSpot Garbage Collectors
  • Train Collector
  • Serial Collector
  • Parallel Collector
  • Parallel Compacting Collector
  • Concurrent Mark-Sweep Collector
  • Garbage First Collector
  • Case Study

Garbage Collection Friendly Programming
  • Object Reference Types
  • Strong reference
  • Soft reference
  • Weak Reference
  • Phantom Reference
  • Case Study
  • Memory Leak
  • Case Study

JVM Tuning
  • Tuning Approach
  • Tuning Parameters
  • Case Study

JVM Profiling
  • OS built-in tools (e.g. typeperf, PerfMon, ResMon, vmstat, iostat)
  • JDK Tools (e.g. VisualVM, JMC, jps, jstack, jmap, jstat, jconsole)
  • Case Study
  • Eclipse Memory Analyzer
  • Case Study

Case Study
  • Case Study - Heap Dump Analyzing
  • Case Study - Thread Dump Analyzing

Performance Friendly Programming (Tips & Tricks)
  • Unsafe
  • Synchronization technics
  • Memory Access Patterns
  • Java NIO
  • Exceptions
  • Logging
  • Collections

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

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.

Prerequisites

Good understanding of Java Core principles
  • Multithreading
  • Collections
  • Object creation lifecycle
  • Garbage Collector principles
Basic understanding of how CPU and Memory works


Trainer in Bucharest
Alexandru Mocioi Java Trainer
Alexandru has a great deal of software development experience in medium and large-scale projects in both the governmental and private sector. The various roles he has held have given him the opportunity to interact with various industries and technologies. From IoT, Office Building ERP and distributed systems with microservices to handling development and project management activities, designing new software architecture and software analysis.

During the course of his career he has worked with technologies such as Java Core Enterprise, NoSQL, JavaScript, SQL and Golang, among others.

In addition to his developer roles in the IT&C industry, he has also been involved in delivering courses on subjects such as Java Performance and Tuning, Java Design Patterns or Java Enterprise with Spring and Hibernate. Alexandru has also taken part in various Open Source communities as a speaker and is a Linux and Open Source advocate.
Course is scheduled in: Bucharest
24.06.2019 - 25.06.2019
Time: 09:00-17:00
City: Bucharest
Duration: 16 hours
Language: Romanian
Trainer
Alexandru Mocioi
Java Trainer
€350
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
Bucharest €350
Krakow €350
Wroclaw €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:

Sign up

Choose dates
First Name*
Last Name*
Company
Email*
Phone
Your Comment
Luxoft Warsaw - Warsaw Spire, plac Europejski 1, 00-844 Warszawa
Dimitrie Pompeiu nr 5-7 , building C, Et. 5, sect 2, Bucharest, 014459

Contact phone:

021 371 4858
Luxoft Poland Wroclaw - Silver Tower pl. Konstytucji 3-go Maja 3 50-048 Wroclaw
Aleja Generała Tadeusza Bora-Komorowskiego 25, Quattro Business Park Five, 31-476 Kraków, Poland

Contact phone:

+48 122110650
Success
Thank you.
Your request has been received.