about banner




Description:
  • Focus of the training is to make JVM and Java performance tuning clear and simple as possible for the participants at the design, architecture and, implementation levels. This is an end-to-end training. The Training illustrates almost every concept with the help of pictures because it is much easier to understand the concept pictorially and model code. There are a lot of illustrations in the course of the training. There are worked out examples to illustrate the concepts for almost every topic. There is a detailed case study that strings together all concepts and technology.
Intended Audience:
  • The target group is programmers who want to know foundations of concurrent programming and existing concurrent programming environments, in order, now or in future, to develop multithreaded applications for multi-core processors and shared memory multiprocessors.
  • Java Consultants, developers or anyone with Java experience interested in performance testing.
Prerequisites:
  • Some experience with distributed technologies. Good Knowledge of Java.
  • Working knowledge of any database Workstation with JDK 1.7.0 installed
Instructional Method:
  • This is an instructor led course provides lecture topics and the practical application of Java and the underlying technologies.
  • It pictorially presents most concepts and there is a detailed case study that strings together the technologies, patterns and design.
JVM and Java Performance Tuning
  • Understanding Virtual Memory
  • Garbage Collection and Memory Architecture
  • Heap Fragmentation
  • GC Pros and Cons
  • Object Size
  • Algorithms
  • Overview
  • Performance
  • GC Tasks
  • Reachability
  • Managing OutOfMemoryError
  • Generational Spaces
  • Measuring GC Activity
History
  • Summary
  • Old Space
  • Young Space
  • JVM 1.4, 5, 6
Reference Objects
  • Reference Objects
  • PhantomReference
  • WeakHashMap
  • SoftReference
  • ReferenceQueue
  • Object Reachability
  • WeakReference
  • Using References
  • Abstracting
SoftHashMap
  • Performance Implications
Garbage Collection and Performance Tips
  • Programming Tips
  • Large Object of different sizes
  • Object Pooling
  • Reference Objects
  • Object Allocation
  • Problems with Finalization
Common Tuning Options
  • Heap sizing
  • GC policy
  • Be aware of Ergonomic settings
  • Other tuning parameters
  • Tuning for Low pause time
  • Tuning for throughput
Garbage Collection-Advanced Tuning Scenarios
  • Advance Tuning Scenarios-Part2
  • JDK 5,6,7 defaults
  • Default Flags
  • Garbage Collection Data of Interest
  • Tuning GC For Throughput and Latency
Latency
  • Old(Parallel)
  • Perm
  • Young (Parallel)
  • Pset Configuration
Old(CMS)
  • Tenuring Distribution
  • Initiating Occupancy
  • Common Scenarios
  • Survivor Ratio
  • Tenuring threshold
Througput
  • (Parallel GC)
  • CondCardmark
  • Adaptive Sizing
  • Tlabs
  • Large Pages
  • Numa
  • Pset Configuration
CMS
  • Concurrent Mode Failure
  • Monitoring GC
  • Par New
  • Parallel GC
  • Safe Pointing
  • Time Stamps
  • Date Stamps
  • System.GC
Advance Tuning Scenarios-Part1
  • Monitoring the GC
  • Conclusions
  • GC Tuning
  • Tuning Parallel GC
  • Tuning CMS
  • Tuning the young generation
GC Tuning Methodology
  • Deployment Model
  • Choosing Runtime
  • General GuideLines
  • Data Model
Heap Sizing
  • Factor Controlling Heap Sizing
JVM Architecture and Dynamic Compilation
  • Aggressive Inlining
  • Biased locking
  • Client VM
  • Loop unrolling
  • Server VM
  • Data Flow analysis
  • Dynamic Compilation
  • OSR
  • Dead Code Elimination
  • Code Hoisting
Advanced JVM Architecture Part 1
  • NUMA
  • Inline caching
  • Virtual method calls Details
  • Virtual Machine Design
  • Dynamic Compilation
  • Large Pages
  • Biased Locking
  • Lock Coarsening
  • Standard Compiler Optimization
  • Speculative Optimizations
  • Escape Analysis
  • Scalar Replacements
  • Inlining Details
  • VM Philosophy
Advanced JVM Architecture-Part 2
  • JIT
  • Mixed mode
  • Golden Rule
  • Profiling
  • Optimizations
Understanding and Controlling JVM Options
  • DoEscapeAnalysis
  • AggressiveOpts
CallSites
  • Polymorphic
  • BiMorphic
  • MegaMorphic
  • MonoMorphic
HotSpot
  • Client
  • Server
  • Tiered
Monitoring JIT
  • Deoptimizations
  • Backing Off
  • PrintCompilation
  • OSR
  • Log Compilations
  • Optimizations
  • PrintInlining
Intrinsics
  • Common intrinsics
Tuning inlining
  • MaxInlineSize
  • InlineSmallCode
  • MaxInline
  • MaxRecursiveInline
  • FreqInlineSize
Machine Code with Debug Info
  • PrintingAssembly
  • UnlockingDiagnostics
  • PrintOptoAssembly
Understanding Javap and VM Opcodes for Tuning
  • Constant values
  • Stack Operations
  • Opcodes
  • Flow Control
  • JVM Stack
  • Local variables
  • Stack Juggling
NIO
  • Character Streams Encoding
  • Other Charsets - ISO 8859
  • Big / Little Endian
  • Forms of Unicode
  • 32-bit Characters
  • Code Points
  • Charset Class
  • Other Encodings
  • The Unicode Standard
  • Encoders and Decoders
Java New IO Package
  • Non-Blocking Operations
  • Buffers Advantages
  • Selectors
  • Channels
  • Allocating Buffers
  • Motivation for Using
  • Memory Mapped Files
  • Working with Buffers
NIO Uses
  • Event Driven Architecture
NIO 2.0
  • File System Change Notification
  • Multicasting
  • File and Directories
  • Symbolic Links
  • Watch Service API
  • Metadata File Attributes
  • Two Security models
  • FileVisitor Class
  • Working with path
  • SPI Package
  • Asynchronous IO with Socket and File
Class-loading
  • Common Class loading Issues
  • Changing the rules of default class visibility
  • Class Loading Basics
  • Introduction
  • Diagnosing and resolving class loading problems
  • Custom Class Loaders
  • Class visibility
Advanced Class-loading
  • Understanding visibility rules
  • Advantages of Peer Class-loading
  • Hot Loading
  • IllegalAccessException
  • ClassCastException
  • Peer Class-loading
  • Understanding delegation rules
  • LinkageError
  • Problems with these rules.
JMX
  • Introduction
  • Dynamic Mbeans
  • Open Mbean
  • Standard Mbeans
  • JMX Remoting
  • Advanced Features
  • J2EE Management(optional)
  • Model Mbean
  • ProfilingTools
Performance Programming Tips
  • Abuse of the String class
  • Array copy
  • Creating intermediate objects
  • Wrong collections
  • Primitive and Objects
  • Mutable return types
Profiling with Netbeans or VisualVM
  • Architecture and Technologies used
  • Issues with Traditional Profiling Schemes
  • What is new in NetBeans Profiler 6.x?
  • Features
  • Introduction (of NetBeans profiler)
Profiling Using Eclipse TPTP
  • Agent Controller
  • Architecture Components
  • Objectives
  • Architecture
  • Project Structure
Profiling Java SE Memory
  • Memory profiling tools
  • Generation count
  • Memory leak profiling strategies
  • Heap profiling strategies
  • Identifying problem memory usage patterns
  • When to use what tools?