Angelika Langer - Training & Consulting
HOME | COURSES | TALKS | ARTICLES | GENERICS | LAMBDAS | IOSTREAMS | ABOUT | CONTACT | Twitter | Lanyrd | Linkedin
Course Curriculum Angelika LangerCourse Curriculum Angelika Langer  
HOME

  GENERAL INFO
  SCHEDULE
  REGISTRATION
  
  JAVA
    EFFECTIVE JAVA
    CONCURRENCY
    PERFORMANCE
    LAMBDAS
    JAVA AFTER EIGHT
    MODULE SYSTEM
    GC TUNING
    MEMORY MODEL 
    JAVA INTRO

  C++
    RELIABLE C++
    EFFECTIVE STL
    TEMPLATES
    IOSTREAMS
    C++ INTRO   
 

GENERICS 
LAMBDAS 
IOSTREAMS 
ABOUT 
CONTACT 
The Art of Garbage Collector Tuning

The Art of Garbage Collector Tuning
COURSE DESCRIPTION

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  [ ].

     


     
    COURSE CONTENT


     
    Garbage Collection Algorithms 
    • Mark-and-Sweep
    • Mark-and-Copy
    • Fragmentation and Compaction
    • Generation GC
    • Parallel GC
    • Concurrent GC
    • "Garbage First" GC
    Garbage Collection Profiling and Tuning (Sun HotSpot JVM)
    • GC Profiling
    • GC Tuning Goals
    • Tuning for Maximum Throughput
    • Tuning for Minimum Pause Times
    • Tuning the G1 Collector
    • Perm Space and Class Unloading
    FURTHER READING

    To get an impression of some topics covered in this workshop check out the sample reading: 
     
    EFFECTIVE JAVA
    Column in JavaSpektrum 
    (available in German only)

     
     
    TRAINING LOCATIONS

    Open Enrollment
    Public courses are conducted in collaboration with partner companies worldwide. Presentation language is English or German, depending on the location. For further information go to GENERAL INFO.
    On-Site Training
    Courses can be held at your company site. Duration and content will be tailored to your specific needs and prerequisites. Presentation language is English or German.  For further information go to GENERAL INFO.
    For information regarding training locations and the current schedule of public courses go to SCHEDULE. For further information or enrollment send me EMAIL or use the REGISTRATION form.
    Schedule
    To check for availability, price and other details send me EMAIL or use the REGISTRATION form.
      © Copyright 1995-2014 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Courses/GC.html  last update: 26 Nov 2014