JVM Stack, Frame and Stack Overflow

This chapter provides tutorial notes and example codes on JVM stack, frame and stack overflow. Topics include introduction of JVM stacks and frames; condition of StackOverflow exception; setting stack size limit with -Xss; estimating frame size; impact of stack size on JVM footprint; stack area expansion and limitation; stack behavior difference between HotSpot and JRockit.

What Is JVM Stack?

StackOverflowError Exception Test

-Xss JVM Option for Stack Size

Frame Impact of Extra Statements

JVM Stack Expansion and Footprint

JVM Stack Expansion and OutOfMemoryError

Largest Stack Size for HotSpot on Windows

Default Stack Sizes of HotSpot and JRockit

JRockit Frame Size Smaller than HotSpot

JRockit Expanding Stacks in Bigger Chunks

JRockit Running Out Of Memory Quicker

Largest Stack Size for JRockit on Windows

Conclusions:

Table of Contents

 About This Book

 Downloading and Installing JDK 1.8.0 on Windows

 Downloading and Installing JDK 1.7.0 on Windows

 java.lang.Runtime Class - The JVM Instance

 java.lang.System Class - The Operating System

 ClassLoader Class - Class Loaders

 Class Class - Class Reflections

 Sun's JVM - Java HotSpot VM

 JRockit JVM 28.2.7 by Oracle Corporation

 JVM Runtime Data Areas

 Memory Management and Garbage Collectors

 Garbage Collection Tests

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

 Outdated Tutorials

 References

 PDF Printing Version