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)

Obtaining relevant metrics for memory management

There are several important metrics for knowing how the memory of an application is doing. Understanding the following three important concepts that define the performance of the application is the first step here:

  • Memory that is functioning well
  • Normal latency
  • A normal level of throughput

Let’s take a look at each one of these.

Well-functioning memory

When you have experience with a specific application, you may know its stable memory-usage point. There needs to be more memory available than just the stable usage point though. Instead, a safe amount of memory needs to be available for the Java application, and this reserved memory should not be almost full. Conversely, having too much memory allocated for the Java application is also not the way to go. This is because the rest of the system will also need some memory for other processes, since the operating system is also running.

If you have an...