Anika Technologies
Your Transforming Partner
JVM and Java Performance Tuning
Training Contents
Description
Intended Audience
Prerequisites
Instructional Method
course contents
: +91 7720092936/9766640192
Email: [email protected]
JVM and Java Performance Tuning
Course Contents
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
page4
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
m
Througput
CMS
Concurrent Mode Failure
Monitoring GC
(Parallel GC)
CondCardmark
Adaptive Sizing
Tlabs
Large Pages
Numa
Pset Configuration
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
Advanced JVM Architecture Part 1
Aggressive Inlining
Biased locking
Client VM
Loop unrolling
Server VM
Data Flow analysis
Dynamic Compilation
OSR
Dead Code Elimination
Code Hoisting
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
HotSpot
Deoptimizations
Backing Off
PrintCompilation
OSR
Log Compilations
Optimizations
PrintInlining
Intrinsics
Common intrinsics
Tuning inlining
Client
Server
Tiered
Monitoring JIT
Polymorphic
BiMorphic
MegaMorphic
MonoMorphic
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
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
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
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
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
Abuse of the String class
Array copy
Creating intermediate objects
Wrong collections
Primitive and Objects
Mutable return types
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:
[email protected]Website:www.anikatechnologies.com