Courses
Oracle Courses
Symantec Courses

JAV-401 --- Java Performance Tuning Workshop

Overview

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

Objectives

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.Students who can benefit from this courseJava developers and Quality Assurance engineers.

PreRequisites

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

 

Who Can Benefit

Java developers and Quality Assurance engineers

Duration

4 Days

Course Content

Java Performance Tuning Workshop Content Details

 
 
Section 1 - Introduction
  •  
    • defining performance
    • identifying causes of poor performance
    • introduction to aspects of performance tuning
Section 2 - Performance Tuning Methodology
  •  
    • introduction to “The Box”, an abstraction of a computer system
    • hardware’s 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
Section 3 - Time
  •  
    • responsiveness
    • how to measure time
    • logging to monitor performance
    • common performance problems
Section 4 - Day 2 Memory
  •  
    • System level monitoring
    • Memory management
    • Garbage collection algorithms
    • Heap tuning
Section 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
Section 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
Section 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
Section 8 - Object Life-cycles
  •  
    • some terminology
    • finialization
    • reference objects and collection rules
    • soft
    • weak
    • phantom
    • ReferenceQueue
    • WeakHashMap
 
Section 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
Section 10 - Interprocess communications
  •  
    • RMI tracing
    • socket tracing
    • JDBC Monitoring
Section 11 - Threading
  •  
    • Java support for threading
    • Synchronization explained
    • Synchronized statement and keyword
    • Producer consume with performance implications of choices
    • Little’s Law
    • reducing lock contention
    • Java 5 locking optimizations
Section 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
Section 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
Section 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
Section 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
Section 16 - Collections
  •  
    • coding style for custom implied collections
    • Review of standard 1.5 collection types
    • introduction to non-blocking collections
Section 17 - Serialization
  •  
    • purpose and performance implications
    • review of serialization
    • optimizing serialization



Interested in any of our courses. Use this form to contact us