Java Performance Tuning Training Syllabus

Curriculum Designed by Experts

Understanding Virtual Memory NIO

  • Java New IO Package
    • Motivation for Using
    • Working with Buffers
    • Allocating Buffers
    • Buffers Advantages
    • Channels
    • Memory Mapped Files
    • Non-Blocking Operations
    • Selectors
    • NIO Uses
      • Event Driven Architecture
  • Character Streams Encoding
    • The Unicode Standard
    • Forms of Unicode
    • 32-bit Characters
    • Big / Little Endian
    • Other Encodings
    • Other Charsets - ISO 8859
    • Charset Class
    • Encoders and Decoders
    • Code Points

NIO 2.0

  • Working with path
  • Metadata File Attributes
  • Symbolic Links
  • File and Directories
  • FileVisitor Class
  • Watch Service API
    • Two Security models
    • SPI Package
  • File System Change Notification
  • Multicasting
  • Asynchronous IO with Socket and File

Garbage Collection and Memory Architecture

  • Overview
  • Generational Spaces
  • GC Tasks
  • Heap Fragmentation
  • GC Pros and Cons
  • Algorithms
  • Reachability
  • History
    • JVM 1.4, 5, 6
    • Young Space
    • Old Space
    • Summary
  • Measuring GC Activity
  • Performance
  • Object Size
  • Managing OutOfMemoryError

Reference Objects

  • Reference Objects
  • Object Reachability
  • Using References
  • SoftReference
  • WeakReference
  • PhantomReference
  • Abstracting
  • ReferenceQueue
  • WeakHashMap
  • SoftHashMap
    • Performance Implications

Garbage Collection and Performance Tips

  • Programming Tips
  • Problems with Finalization
  • Reference Objects
  • Object Allocation
  • Object Pooling
  • Large Object of different sizes

Common Tuning Options

  • Be aware of Ergonomic settings
  • Heap sizing
  • GC policy
  • Other tuning parameters
  • Tuning for throughput
  • Tuning for Low pause time

Advance Tuning Scenarios

  • GC Tuning
    • Tuning the young generation
    • Tuning Parallel GC
    • Tuning CMS
  • Monitoring the GC
  • Conclusions

JMX

  • Introduction
  • Standard Mbeans
  • Dynamic Mbeans
  • Model Mbean
  • Open Mbean
  • JMX Remoting
  • Advanced Features
  • J2EE Management(optional)

Profiling Tools
Profiling Java SE Memory

  • Memory profiling tools
  • Heap profiling strategies
  • Memory leak profiling strategies
  • Generation count
  • When to use what tools?
  • Identifying problem memory usage patterns

Profiling with Netbeans or VisualVM

  • Issues with Traditional Profiling Schemes
  • Introduction (of NetBeans profiler)
  • Architecture and Technologies used
  • Features
  • What is new in NetBeans Profiler 6.x?

Profiling Using Eclipse TPTP

  • Objectives
  • Project Structure
  • Architecture
  • Architecture Components
  • Agent Controller

Performance Programming Tips

  • Primitive and Objects
  • Abuse of the String class
  • Creating intermediate objects
  • Mutable return types
  • Wrong collections
  • Array copy

JVM Architecture and Dynamic Compilation

  • Dynamic Compilation
  • Code Hoisting
  • Dead Code Elimination
  • Biased locking
  • Loop unrolling
  • Aggressive Inlining
  • Data Flow analysis
  • OSR
  • Server VM
  • Client VM

Advanced JVM Architecture

  • Virtual Machine Design
  • Dynamic Compilation
  • VM Philosophy
  • Virtual method calls Details
  • Inlining Details
  • Speculative Optimizations
  • Standard Compiler Optimizations
  • Scalar Replacements
  • Escape Analysis
  • Lock Coarsening
  • Biased Locking
  • Inline caching
  • Large Pages
  • NUMA

Talk to our Advisor.

+91