Certificate Authentication

Java Performance Certificate for Paweł Potuczko

Add to LinkedIn

Certificate ID: 
652895
Authentication Code: 
c4b77
Certified Person Name: 
Paweł Potuczko
Trainer Name: 
Norbert Lenkiewicz
Duration Days: 
5
Duration Hours: 
35
Course Name: 
Java Performance
Course Date: 
27 September 2021 09:00 to 1 October 2021 16:00
Course Outline: 

Basics and performance measurements

  • Performance dimensions
  • The process of creating efficient software
  • Factors affecting performance
  • Micro and Macro-Benchmarking
  • Profiling
  • Use of tools: JConsole, Java Visual VM, JMC (Java Mission Control), MAT (memory analysis)

Efficient work on files

  • IO: streams, buffering, RandomAccessFile
  • NIO: channels, memory mapped files
  • NIO.2 (introduction): Path, Files
  • How to increase serialization performance

Working with collections and arrays

  • Computational complexity - how to choose algorithms
  • Recursion, iteration and heuristics
  • Performance for sets, lists, queues, maps
  • Views and Collections class
  • Review of multithreaded collections (java.util.concurrent)
  • Arrays and collections for simple types

JMH - approved microbenchmak framework for Java

  • Creating JMH project and benchmarks
  • Configuration, running, results
  • Concurrent and parameterizable Benchmarks
  • Traps and advanced elements

Class loading

  • Class Class, ClassLoader and class loading process
  • When to control class loading?
  • Delaying class loading and reducing the number of classes
  • Reflection and dynamic proxy
  • Introduction to modules (Java 9)

Memory management in Java

  • Garbage Collector and object life cycle
  • Strong, soft, weak and phantom references
  • Why memory leak occurs and what to avoid in Java
  • Generations and memory spaces
  • Tuning Garbage Collector
  • Types of Garbage Collector: Serial, Parallel, Concurrent, G1
  • Changes in Java 8 and Java 9

Java Virtual Machine

  • Client and server modes
  • Tuning JVM
  • Performance changes from version to version

Introduction to optimization for HTTP (OPTIONAL)

  • Problems with server side optimization
  • Testing with HTTP: HttpUnit, JWebUnit, Selenium
  • Performance measurements for HTTP: Grinder, JMeter
  • Additional information about JMeter

Problems with optimization

  • Micro-benchmarking problems
  • Premature optimization
  • Greed
  • Other bad practices