Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
183 views

JVM and Java Performance Tuning

Designing, Tuning and, Optimization of JVM based applications. Most often tuning is not only a software job. It requires one to know the entire stack right down to the hardware and the tools with which one can pin point the real issue. Beside the usual profilers, the tools he specializes in are Perf, Systemtap, Dtrace, Solaris studio analyzer, JMH, JCStress etc. For Onite Training's and technical consulting feel free to reach us at sales@anikatechnologies.com Phone: +91 7719882295 www.anikatechnologies.com

Uploaded by

Anand Narayanan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
183 views

JVM and Java Performance Tuning

Designing, Tuning and, Optimization of JVM based applications. Most often tuning is not only a software job. It requires one to know the entire stack right down to the hardware and the tools with which one can pin point the real issue. Beside the usual profilers, the tools he specializes in are Perf, Systemtap, Dtrace, Solaris studio analyzer, JMH, JCStress etc. For Onite Training's and technical consulting feel free to reach us at sales@anikatechnologies.com Phone: +91 7719882295 www.anikatechnologies.com

Uploaded by

Anand Narayanan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

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

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: sales@anikatechnologies.com
Website:www.anikatechnologies.com

You might also like