Realdolmen Education

Details

Java Performance Monitoring and Analysis

This course is currently not scheduled on the open calendar, but can be organized on request.

Request Course

Duration

2 day(s)

Audience

Java developers and architects who wish to monitor and improve the performance of their Java applications.

Prerequisites

Having knowledge of the basic Java SE libraries.

Objectives

Learn how to monitor, measure and improve the performance of Java applications.

Methods

Classroom training with hands-on exercises.

Description

Since many Java programs are used nowadays in large and critical computer systems, it becomes important to build applications that are well-written, well-tested and have great performance. The goal is quality, which is difficult to achieve from the start of the application's development. That's why Java developers need techniques to monitor and observe Java applications, so that performance can be improved. This is not an easy task, as it requires a thourough understanding of the Java Virtual Machine.

During this course, you will learn about several tools that will help you monitor the performance of your applications. The course starts with an overview of the Java Virtual Machine and its architecture. This includes the Runtime, the JIT Compiler and the Garbage Collector. You will learn about the way you can monitor these components. Next, you will learn about profiling and how this can help you detect anomalies in your code. Improving these anomalies may have an immediate impact in the performance of you application. The course continues by discussing different techniques on how to tune the Java Virtual Machine and the different runtime options you can choose from.

Contents

  • Introduction
    • Performance Tuning
    • Memory Usage
    • CPU Utilization
    • Network I/O
    • Disk I/O
  • JVM Overview
    • High Level Architecture
    • VM Runtime
    • Garbage Collector
    • JIT Compiler
    • Adaptive Tuning
  • JVM Performance Monitoring
    • Garbage Collection
    • JIT Compiler
    • Class Loading
    • Java Application Monitoring
  • Java Application Profiling
    • Performance Opportunities
    • Lock Contention
    • Volatile Usage
    • Data Structure Resizing
    • Increasing Parallelism
    • Detecting High CPU Usage
  • Tuning the JVM
    • Methodology
    • Application Systemic Requirements
    • Ranking Systemic Requirements
    • Choosing JVM Deployment
    • Choosing JVM Runtime
    • GC Tuning
    • Determine Memory Footprint
    • Tune Latency / Responsiveness
    • Tune Application Throughput
    • Edge Cases
    • JVM Command Line Options
  • Tips and Tricks for Improving Performance