Java Performance Training Course
Course
In City Of London
Description
-
Type
Course
-
Location
City of london
What will you learn?
Performance tips all come with a shelf life that is linked to the particular technology to which they are applied. Once that technology changes or is no longer used, the tips become useless at best and harmful at worst. For this reason we have purposely designed a course that focuses on providing you with something more than just tricks to get the latest and greatest framework to meet your performance needs. One of the tools we aim to leave you with is a methodology that we've used over the years on a regular basis. This methodology has helped us quickly identify and solve hard performance issues.
The other equally important aspect of performance tuning is tooling. A good portion of the course focuses on a number of open source tools that we have found to be useful in our campaigns to stamp out performance bottlenecks.
Beyond methodology and tooling, we look at some of the fundamentals of Java technology. This includes the inner workings of the Java memory management and HotSpot/JIT technologies.
Objectives
how to apply rigor to the task of performance tuning
how to setup a performance tuning environment
importance of performance tuning requirements and goals
tools needed to conduct a performance investigation
benchmarking and micro-benchmarking skills
Java memory and execution models
Facilities
Location
Start date
Start date
Reviews
Subjects
- Monitoring
- JDBC
- Java Programming
- Java 1.6
- Java API
- Java Development Kit
- Java
- Database
- Database training
- Benchmarking
- Web
- Planning
- Technology
Course programme
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)
- IO: streams, buffering, RandomAccessFile
- NIO: channels, memory mapped files
- NIO.2 (introduction): Path, Files
- How to increase serialization performance
- 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
- 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)
- 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
- Client and server modes
- Tuning JVM
- Performance changes from version to version
- Problems with server side optimization
- Testing with HTTP: HttpUnit, JWebUnit, Selenium
- Performance measurements for HTTP: Grinder, JMeter
- Additional information about JMeter
- Micro-benchmarking problems
- Premature optimization
- Greed
- Other bad practices
Java Performance Training Course