Book Image

Java Memory Management

By : Maaike van Putten, Dr. Seán Kennedy
Book Image

Java Memory Management

By: Maaike van Putten, Dr. Seán Kennedy

Overview of this book

Understanding how Java organizes memory is important for every Java professional, but this particular topic is a common knowledge gap for many software professionals. Having in-depth knowledge of memory functioning and management is incredibly useful in writing and analyzing code, as well as debugging memory problems. In fact, it can be just the knowledge you need to level up your skills and career. In this book, you’ll start by working through the basics of Java memory. After that, you’ll dive into the different segments individually. You’ll explore the stack, the heap, and the Metaspace. Next, you’ll be ready to delve into JVM standard garbage collectors. The book will also show you how to tune, monitor and profile JVM memory management. Later chapters will guide you on how to avoid and spot memory leaks. By the end of this book, you’ll have understood how Java manages memory and how to customize it for the benefit of your applications.
Table of Contents (10 chapters)

Monitoring GC

In order to decide upon the right garbage collector, you’ll need to know your application. There are a few metrics that are especially important for the GC:

  • Allocation rate: How fast the application allocates objects in memory.
  • Heap population: The number of objects and their size living on the heap.
  • Mutation rate: How often references are updated in memory.
  • Average object live time: The time the objects live on average. One application may have objects that die young, while another application may have objects that live longer.

The monitoring of the performance of the GC requires different metrics. The most important ones are mark time, compaction time, and GC cycle time. The mark time entails the time it takes the garbage collector to find all the live objects on the heap. Compaction time is how long it takes the garbage collector to free up all the space and relocate the objects. The GC cycle time is how long it takes the garbage collector...