JVM Runtime Data Areas

This chapter provides tutorial notes and example codes on JVM runtime data areas. Topics include introduction of JVM runtime data areas: Method Area, Heap, Direct Memory, PC Registers, JVM Stacks, and Native Method Stacks; different between thread-shared and per-thread data areas; demonstration programs for different types of OutOfMemoryError exceptions; demonstration program for StackOverflowError exception.


These sections are omitted from this Web preview version. To view the full content, see information on how to obtain the full version this book.

What Are Runtime Data Areas

What Is Method Area or Metaspace

"-XX:MaxMetaspaceSize=..." and "-Xlog:gc*"

Loading EmptyClass Costs 130K in "class space"

Method Area Expansion Demonstration

OutOfMemoryError on the Method Area

Method Area Growth with Dynamically Generated Classes

Garbage Collection Issue with Dynamically Generated Classes

Interned Strings Stored in Heap

What Is Heap Area

Heap Expansion Demonstration

allocateMemory() Method on Direct Memory

JVM Stack Expansion Demonstration

PC Register and Native Method Stack


Takeaways:

Table of Contents

 About This Book

 JVM (Java Virtual Machine) Specification

 Java HotSpot VM - JVM by Oracle/Sun

 java.lang.Runtime Class - The JVM Instance

 java.lang.System Class - The Operating System

 ClassLoader Class - Class Loaders

 Class Class - Class Reflections

JVM Runtime Data Areas

 JVM Stack, Frame and Stack Overflow

 Thread Testing Program and Result

 CPU Impact of Multi-Thread Applications

 I/O Impact of Multi-Thread Applications

 CDS (Class Data Sharing)

 Micro Benchmark Runner and JVM Options

 Micro Benchmark Tests on "int" Operations

 Micro Benchmark Tests on "long" Operations

 Micro Benchmark Tests in JIT Compilation Mode

 Micro Benchmark Tests on "float" and "double" Operations

 OpenJ9 by Eclipse Foundation

 JRockit JVM 28.2.7 by Oracle Corporation

 Archived Tutorials

 References

 Full Version in PDF/EPUB