Java Performance Certificate for Paweł Potuczko
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