Java Performance - Overview
Tags: performance, java, programming, books
Published: 2021-10-20 21:03:31


![Performance](https://media3.giphy.com/media/ZO8EB8aWJjXH6fRHxq/giphy.gif)
#What is this?
In this articles Series, I am going to summarize the main points of the incredible book "Java Perfroamcne" by Scott Oaks. 
This is a great book if you are interested in optimizing your java application and/or want to dig deeper into how java works and how to benchmark and profile your java applicatoin.
We are going to discuss each chapter in a separate part of the article. 
This article is for people who want to take a quick summary for the book and/or want to get quick information of how to think in java performance without the need to read all the book.

![Book cover](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zrojajcq9flpnkr2zzz.jpeg)

&nbsp;


#About Scott, the author
>**Scott Oaks** is a Java Technologist at Sun Microsystems, where he has worked since 1987. While at Sun, he has specialized in many disparate technologies, from the SunOS kernel to network programming and RPCs. Since 1995, he's focused primarily on Java and bringing Java technology to end-users. Scott also authored O'Reilly's `Java Security`, `Java Threads` and `Jini in a Nutshell` titles.
*[Oreilly](https://www.oreilly.com/pub/au/193#:~:text=Scott%20Oaks%20is%20a%20Java,Java%20technology%20to%20end%2Dusers.)*

&nbsp;


#About the book
We are going to disucss the 2nd edition of the book. This edition was published in Feburary 2020. The book index is as follow:

### Table of Contents
Let's see the index of the book highlights:
>
1. **Introduction**
    1. A breif Outline
    2. Platformas and Conventions
    3. The Complete Performance Story
    4. Summary
2. **An approach to performance testing**
    1. Test a Real Application
    2. Understand Throughput, Batching, and Response Time
    3. Understand Variablitiy
    4. Test Early, Test Often
    5. Benchmark Examples
    6. Summary
3. **A Java Performance Toolbox**
    1. Operating System Tools and Analysis
    2. Java Monitoring tools
    3. Profiling Tools
    4. Java Flight Recorder
    5. Summary
4. **Working with the JIT Compiler**
    1. JIT Overview
    2. Tiered Compilation
    3. Common Compiler Flags
    4. Advanced Compiler Flags
    5. The Compilation Trade-offs
    6. The GrallVM
    7. Precompilation
    8. Summary
5. **An Introduction to Garbage Collection**
    1. Garbage Collection Overview
    2. Basic GC Tuning
    3. GC Tools
    4. Summary
6. **Garbage Collection Algorithms**
    1. Understanding the Throughput Collector
    2. Understanding the G1 Garbage Collector
    3. Understanding the CMS Collector
    4. Advanced Tuning
    5. Experimental GC Algorithms
    6. Summary
7. **Heap Memory Best Practices**
    1. Heap Analysis
    2. Using Less Memory
    3. Object Life-Cycle Management
    4. Summary
8. **Native Memory Best Practices**
    1. Footprint
    2. JVM Tunings for the Operating System
    3. Summary
9. **Threading and Synchronization Performance**
    1. Threading and Hardware
    2. Thread Pools and ThreadPoolExectures
    3. The ForkJoinPool
    4. Thread Synchronization
    5. JVM Thread Tunings
    6. Monitoring Threads and Locks
    7. Summary
10. **Java Servers**
    1. Java NIO Overview
    2. Server Containers
    3. Asynchronous Outbound Calls
    4. Json Processing
    5. Summary
11. **Database Performance Best Practices**
    1. Sample Database
    2. JDBC
    3. JPA
    4. Spring Data
    5. Summary
12. **Java SE API Tips**
    1. Strings
    2. Buffered I/O
    3. Classloading
    4. Random Numbers
    5. Java Native Interface
    6. Exceptions
    7. Logging
    8. Java Collections API
    9. Lambdas and Anonymous Classes
    10. Stream and Filter Performance
    11. Object Serilaization
    12. Summary

&nbsp;


#:hand:Further notes
I want to mention that I am adding each chapter after finishing reading it, so it may take sometime till finishing the 12 chapters in the article.
If you have any suggestions and/or notes please mention them to enhance the article.

As soon as I wrote a chapter, I will update this article to include it as a following part.
see you there...

---

#:monkey:take a tip
>_Work smart **AND** hard_

![working-smart](https://c.tenor.com/2PnUyS0_ad0AAAAM/smart-thinking.gif)
![working-hard](https://c.tenor.com/Rlo-1wvJ_BgAAAAM/cat-work.gif)