Performance analysis and tuning is often treated as an issue of subordinate
importance until eventually in one of the final project phases the developers
attempt to verify that their implementation meets the performance requirements.
Typically, a performance tuning is necessary to meet the goals.
Potential performance issues to be addresses in this phase include memory
management and garbage collection:
excessive allocation of memory
wasting memory due to unwanted references (so-called "memory leaks")
reduced throughput due to excessive garbage collection
inacceptably long garbage collection pauses (so-called "stop-the-world"
pauses)
The workshop explains the above mentioned aspects of performance
tuning. Attendants will explore tools for analysis of memory memory management
and garbage collection. They will learn and practice strategies and tactics
for profiling and tuning the JVM's garbage collector. As JVM tuning
is vendor-specific, the workshop's focus is on one particular JVM: the
HotSpot JVM developed by Sun Microsystems (now owned by Oracle).
The HohtSpot JVM initially developed by Sun has been refined and revised
with every release of the JDK since the advent of Java in the mid 90ies.
Today, Java developers face an abundance of GC algorithms in the Oracle
HotSpot JVM - from plain and simple serial stop-the-world collectors with
a single reaper thread to highly parallelized collectors that run several
GC threads concurrently with application threads.
Each of these collectors can be configured and tuned in various ways
in order to control pause times or increase throughput. The number
of choices a Java developer has for configuring the JVM’s garbage collection
for his application is overwhelming. Hence, garbage collector tuning for
the SUN/Oracle JVM is often perceived as a daunting task.
The workshop aims to shed light onto the garbage collection strategies
in the Sun/Oracle JVM by first explaining all algorithms including the
new “Garbage First” (G1) collector. We then take a look at the collectors’
tuning parameters and practice GC tuning in hands-on labs using various
tools.
The workshop provides sound knowledge tailored to professional programmers
in an industrial context. The workshop does not only present theoretical
background knowledge, but a strong focus is on gaining practical experience.
For this reason, a substantial part of the workshop consists of hands-on
labs.
|
Prerequisite Courses
and Skills:
|
Working knowledge of Java; in-depth experience
with the JVM not required. |
Duration:
|
1 day |
Exercises:
|
Workshops and hands-on labs |
This is a workshop for Java programmers responsible for performance
analysis and tuning and devopers interested in memory management and garbage
collections issues.
The course is designed to build on existing expertise as Java programmers
and aims to take the skills one step further. Prerequisite for the seminars
is basic knowledge of Java and an understanding of virtual machine
principles.
OBJECTIVES
|
Understand garbage collection |
|
Know how to choose a garbage collector |
|
Practice how to profile the garbage collector |
|
Know your tuning options |
|
Develop tuning strategies |
The course is designed by Klaus Kreft & Angelika
Langer and backed by years of experience in teaching and more than a decade
of practical experience in industrial software development both in C++
and Java.
Angelika Langer
is a freelance trainer/consultant in the area of software
development in C++ and Java, author of language reference material such
as the Java Generics FAQs [
],
the Lambdas/Streams Tutorial & Reference [
],
and countless articles on C++ and Java topics [
].
Klaus Kreft
is a senior consultant for more than 25 years and has served
as the lead architect and performance expert on several successful industry
projects. He has been working in Java since its advent in 1995.
Both are recognized speakers at OO and Java conferences and author of numerous
articles on C++ and Java topics in various computer magazines worldwide.
Together they write a column for the German Java magazine JavaMagazin
[
]
and are authors of the books "Standard C++ IOStreams and Locales"
(2000) [
]
and "Java Core Programmierung" (2011) [
],
the Online FAQ on Java Generics [
],
and the Lambdas/Streams Tutorial & Reference [
].
|