Anika Technologies
Your Transforming Partner
JVM and Java Performance Tuning
Training Contents
☛ Description
☛ Intended Audience
☛ Prerequisites
☛ Instructional Method
☛ course contents
: +91 7720092936/9766640192
Email: sales@anikatechnologies.com
JVM and Java Performance Tuning
Course Contents
page4 ☛ Understanding Virtual Memory Day1
☛ Garbage Collection and Memory Architecture
☛ Reference Objects
☛ Garbage Collection and Performance Tips
☛ Common Tuning Options
☛ Garbage Collection-Advanced
Tuning Scenarios Day2
☛ JVM Architecture and Dynamic Compilation
☛ Advanced JVM Architecture Part 1
☛ Advanced JVM Architecture-Part 2
☛ Understanding and Controlling JVM Options
☛ Monitoring JIT Day3
☛ Tuning inlining
☛ Machine Code with Debug Info
☛ Understanding Javap and VM Opcodes
for Tuning
☛ NIO
☛ NIO 2.0 Day4
☛ Class-loading
☛ Advanced Class-loading
☛ JMX
☛ ProfilingTools
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.
m
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
m
■ 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
m
■
■
■
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 Optimizations
• Speculative Optimizations
• Escape Analysis
• Scalar Replacements
• Inlining Details
• VM Philosophy
Advanced JVM Architecture-Part 2
• JIT
• Mixed mode
• Golden Rule
• Profiling
• Optimizations
m
■ 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
m
• 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
m
■
■
■
■
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
m
• 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
m
• Heap profiling strategies
• Identifying problem memory usage patterns
• When to use what tools?
Mobile: +91 7719882295/ 9730463630
Email: sales@anikatechnologies.com
Website:www.anikatechnologies.com

JVM and Java Performance Tuning | JVM Tuning | Java Performance

  • 1.
    Anika Technologies Your TransformingPartner JVM and Java Performance Tuning Training Contents ☛ Description ☛ Intended Audience ☛ Prerequisites ☛ Instructional Method ☛ course contents
  • 2.
    : +91 7720092936/9766640192 Email:sales@anikatechnologies.com JVM and Java Performance Tuning Course Contents page4 ☛ Understanding Virtual Memory Day1 ☛ Garbage Collection and Memory Architecture ☛ Reference Objects ☛ Garbage Collection and Performance Tips ☛ Common Tuning Options ☛ Garbage Collection-Advanced Tuning Scenarios Day2 ☛ JVM Architecture and Dynamic Compilation ☛ Advanced JVM Architecture Part 1 ☛ Advanced JVM Architecture-Part 2 ☛ Understanding and Controlling JVM Options ☛ Monitoring JIT Day3 ☛ Tuning inlining ☛ Machine Code with Debug Info ☛ Understanding Javap and VM Opcodes for Tuning ☛ NIO ☛ NIO 2.0 Day4 ☛ Class-loading ☛ Advanced Class-loading ☛ JMX ☛ ProfilingTools
  • 3.
    Description: ■ Focus ofthe 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. m
  • 4.
    JVM and JavaPerformance 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
  • 5.
    ■ Garbage Collectionand 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 m
  • 6.
    ■ Througput • (ParallelGC) • 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 m
  • 7.
    ■ ■ ■ JVM Architecture andDynamic 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 Optimizations • Speculative Optimizations • Escape Analysis • Scalar Replacements • Inlining Details • VM Philosophy Advanced JVM Architecture-Part 2 • JIT • Mixed mode • Golden Rule • Profiling • Optimizations m
  • 8.
    ■ Understanding andControlling 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 m
  • 9.
    • PrintOptoAssembly ■ UnderstandingJavap 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 m
  • 10.
    ■ ■ ■ ■ NIO 2.0 • FileSystem 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 m
  • 11.
    • 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 m
  • 12.
    • Heap profilingstrategies • Identifying problem memory usage patterns • When to use what tools? Mobile: +91 7719882295/ 9730463630 Email: sales@anikatechnologies.com Website:www.anikatechnologies.com