35 hours (usually 5 days including breaks)
Programming in Java.
The course is intended for Java programmers who want to produce efficient applications. After consultation with client, the course can be conducted in a special tool version, for people who only need to detect performance problems (testers, administrators) - in this case programming in Java is not required.
During the training, participants will learn about process and modern tools for producing efficient software in Java. They learn performance-related traps, benchmarking, profiling, tuning, memory analysis, performance tricks using collections or IO. Learned topics and tools are applicable regardless of the technologies used in the project, because we focus on language-level performance, tools and embedded libraries. Tuning discusses parameters of JVM provided by Oracle.
Basics and performance measurements
- Performance dimensions
- The process of creating efficient software
- Factors affecting performance
- Micro and Macro-Benchmarking
- 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 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
- Other bad practices
Knowledge of the teacher and comparison
Theoretical and practical knowledge, detailed discussion of the subject, contact with the teacher.
The teacher's passion and willingness to share knowledge.
MISYS GLOBAL LIMITED (SP. Z O.O.) ODDZIAŁ W POLSCE
Some of our clients
is growing fast!
We are looking to expand our presence in the US!
As a Business Development Manager you will:
- expand business in the US
- recruit local talent (sales, agents, trainers, consultants)
- recruit local trainers and consultants
- Artificial Intelligence and Big Data systems to support your local operation
- high-tech automation
- continuously upgraded course catalogue and content
- good fun in international team
If you are interested in running a high-tech, high-quality training and consulting business.Apply now!