‹ Back To Training

Java Performance Tuning

Timeline: 3 Days


Expand All › ‹ Collapse All

  • Background on tuning
  • Why do we need to tune
  • What are symptoms of a system that needs tuning
  • What outcomes should I expect
  • Overview of Java as a platform
  • Java Virtual Machine Architecture
  • Key Components of the Java Virtual Machine
  • Byte-code verifiers, class loaders, and security
  • Memory heaps and stacks
  • Garbage collection
  • Basic tools
  • Timing tools
  • Load Testing Tools and Techniques
  • JVM Profiling Tools (Profilers)
  • Memory Management and Monitoring
  • Operating System and Network Monitoring tools
  • Java Runtime Environment and System constraints
  • Calculating & Measuring JVM / JRE overheads
  • Identifying “startup” components of JVM / JRE
  • Calculating and Measuring Hardware and OS Constraints
  • Defining performance specifications, variations, and objectives
  • Defining and Capturing a benchmark (a baseline)
  • Tuning from the benchmark to the objectives
  • Measuring improvements with Profiling and Monitoring tools
  • Understanding JVM memory and lifecycles
  • Following an object through a lifecycle
  • GC algorithms: Which one, when – tuning GC algorithms
  • JVM Command line switches
  • Measuring improvements
  • Overview of the tuning methodology
  • Understanding the 80/20 rule
  • Can you be smarter than the JIT?
  • Getting big gains quick
  • Understanding the overhead of Logging, Exceptions, Strings, and IO
  • Review of Java EE and Java EE Application Server platforms
  • Identifying and tuning common bottlenecks in Java EE applications
  • Identifying and tuning resource pools, external resources, and dependencies