Preface
1.Introduction
A Brief Outline
Platforms and Conventions
JVM Tuning Flags
The Complete Performance Story
Write Better Algorithms
Write Less Code
Oh Go Ahead, Prematurely Optimize
Look Elsewhere: The Database Is Always the Bottleneck
Optimize for the Common Case
Summary
2.An Approach to Performance Testing
Test a Real Application
Microbenchmarks
Macrobenchmarks
Mesobenchmarks
Common Code Examples
Understand Throughput, Batching, and Response Time
Elapsed Time (Batch) Measurements
Throughput Measurements
Response Time Tests
Understand Variability
Test Early, Test Often
Summary
3.A Java Performance Toolbox
Operating System Tools and Analysis
CPU Usage
The CPU Run Queue
Disk Usage
Network Usage
Java Monitoring Tools
Basic VM Information
Thread Information
Class Information
Live GC Analysis
Heap Dump Postprocessing
Profiling Tools
Sampling Profilers
Instrumented Profilers
Blocking Methods and: Thread Timelines
Native Profilers
Java Mission Control
Java Flight Recorder
Enabling JFR
Selecting JFR Events
Summary
4.Working with the JIT Compiler
Just-in-Time CompilersrAn Overview
Hot Spot Compilation
Basic Tunings: Client or Server (or Both)
Optimizing Startup
Optimizing Batch Operations
Optimizing Long-Running Applications
Java and JIT Compiler Versions
Intermediate Tunings for the Compiler
Tuning the Code Cache
Compilation Thresholds
Inspecting the Compilation Process
Advanced Compiler Tunings
Compilation Threads
Inlining
Escape Analysis
Deoptimization
Not Entrant Code
Deoptimizing Zombie Code
Tiered Compilation Levels
……
5.An Introduction to Garbage Collection
6.Garbage Collection Algorithms
7.Heap Memory Best Practkes
8.Native Memory Best Practices
9.Threading and Synchronization Performance
10.Java Enterprise Edition Performance
11.Database Performance Best Practices
12.Java SE API Tips
A.Summary ofTuning Flags
Index