Java Performance Tuning Workshop (EXL-2025)

Java Performance Tuning Workshop (EXL-2025)
 

In this Extreme Learning expert-led courses, you will learn a blend of tuning methodology, performance theory and practical tips on solving difficult performance problems. You will have an opportunity to hone your skills on a series of labs that are derived from real problems found during our consulting experience. The tools learned are all freely available or open source and will equip you to immediately apply what you have learned in your workplace. No more suffering through slow, under performing applications. You will learn how to develop code with performance as the goal and the end user in mind.

About Extreme Learning: Get taught directly by the experts and interact with peers in an engaging informal environment. These are intensive, deep dive training sessions designed for advanced IT professionals which incorporate expert-led presentations.

»   Details below
 
 
Select a course
Product ID Duration Price
EXL-2025 4 days $3,500.00

If schedules are not displayed, or schedules shown do not match your availability, select "Request a Class" to inquire about dates or arranging an onsite or dedicated class for your organization.

 
 
Languages
English

 Back to top

 
 
Who Can Benefit
Java developers and Quality Assurance engineers

 Back to top

 
 
Prerequisites
Intermediate to advanced level knowledge of Java Standard Edition (JSE) versions 1.6 and beyond. Familiarity with the Java Enterprise Edition (JEE).

 Back to top

 
 
Skills Gained
Upon completion of this course, students should be able to:
  • understand the importance of the user experience
  • find the tools needed to conduct a performance investigation
  • administer benchmarking and micro-benchmarking
  • understand Java memory and execution models

 Back to top

 
 
Course Content

Module 1 - Introduction

  • defining performance
  • identifying causes of poor performance
  • introduction to aspects of performance tuning

Module 2 - Performance Tuning Methodology

  • introduction to The Box, an abstraction of a computer system
  • hardwares role in performance
  • JVM and operating systems role in performance applications role in performance
  • actors role in performance
  • activities as defined by the layers in The Box
  • performance testing workflow
  • using the dominate consumer to identify bottlenecks
  • role of hardware
  • role of JVM/OS role of application
  • no dominating consumer
  • role of tooling

Module 3 - Time

  • responsiveness
  • how to measure time
  • logging to monitor performance
  • common performance problems

Module 4 - Day 2 Memory

  • System level monitoring
  • Memory management
  • Garbage collection algorithms
  • Heap tuning

Module 5 - Performance Testing

  • objectives
  • types
  • components
  • differences between closed and open test harnesses
  • performance testing environment performance testing pitfalls
  • performance testing goals
  • GUI testing
  • web based performance testing
  • introduction to Apache JMeter
  • test doubles for performance

Module 6 - Monitoring Hardware

  • important components of hardware to monitor
  • hardware monitoring tools for CLM
  • Unix/Linux monitoring
  • introduction to vmstat
  • case studies of how different performance problems show up in vmstat
  • relating vmstat output to application code
  • Windows monitoring

Module 7 - Java Memory Management

  • process organization
  • JVM heap organization (Sun and IBM)
  • reference counting
  • tracing collectors
  • hemispheric collectors
  • generational collectors
  • parallel and concurrent collectors
  • G1 collector
  • GC ergonomics
  • effects of OS and hardware on GC
  • escape analysis
  • Non-Uniform Memory Access (NUMA)
  • switches affecting JVM memory management

Module 8 - Object Life-cycles

  • some terminology
  • finialization
  • reference objects and collection rules
  • soft
  • weak
  • phantom
  • ReferenceQueue
  • WeakHashMap

Module 9 - Monitoring Garbage Collection

  • JVM flags for monitoring GC (Sun, IBM)
  • GC log record format
  • Secondary information hidden in GC logs
  • GC sequential overhead
  • GCViewer
  • HPJMeter

Module 10 - Interprocess communications

  • RMI tracing
  • socket tracing
  • JDBC Monitoring

Module 11 - Threading

  • Java support for threading
  • Synchronization explained
  • Synchronized statement and keyword
  • Producer consume with performance implications of choices
  • Littles Law
  • reducing lock contention
  • Java 5 locking optimizations

Module 12 - Java Management eXtentions

  • review of JMX based tools
  • Defining your own MBeans for performance monitoring
  • defining an mbean
  • adding attributes and operations
  • hooking an mbean into the notification framework
  • AttributeBundles

Module 13 - Profilers

  • role of profiling
  • profiling techniques
  • JVMTI
  • types of profiling mapped to The Box
  • Execution profiling
  • memory profiling
  • thread profiling
  • prof
  • hprof
  • HPJMeter
  • NetBeans Profiler
  • when to use which profiler
  • effects of Object pooling
  • diagnosing memory problems
  • loitering object
  • leaking object
  • permspace leaks

Module 14 - Performance Tactics

  • effects of human perception
  • tuning strategy
  • influences on performance
  • big gains quickly
  • latency
  • CPU bottlenecks
  • I/O bottlenecks
  • memory bottlenecks
  • garbage collection tactics
  • heap sizing
  • The Box as a profiling guide

Module 15 - Benchmarking

  • introduction
  • sources of benchmarks
  • macro and microbenchmarks
  • dangers of benchmarking
  • accounting for interfering factors
  • a bad benchmark
  • developing a micro-benchmark
  • performance tuning a benchmark
  • role of statistics in benchmarking
  • benchmark validation
  • macro-benchmarking
  • test harness validation
  • importance of randomization
  • effects of queues
  • consistency

Module 16 - Collections

  • coding style for custom implied collections
  • Review of standard 1.5 collection types
  • introduction to non-blocking collections

Module 17 - Serialization

  • purpose and performance implications
  • review of serialization
  • optimizing serialization

 Back to top

 
 
Browse Other Course Topic Areas
 
Sun Training U.S.   
» Training outside the U.S.
 
 
 
 
 
Can't Travel for Training?
Sun eLearning and On Demand Labs give you easy access to the training you need.
Get an iPod touch
Get an iPod touch
For a limited time: order qualifying Sun training and get an iPod touch®.