The previous chapter gave us knowledge on how to tune an application's performance by understanding the symptoms of the performance issues. We walked through the performance tuning life cycle, learning at what stages of the application performance can be tuned and how. We also learned how to connect JMX to the Spring application, observed the application's bottleneck, and tuned it.
In this chapter, we will walk through the insides of Java Virtual Machine (JVM) and tuning JVM to achieve high performance. JVM performs two primary jobs—executing code and managing memory. JVM allocates memory from OS, manages to do heap compaction, and performs garbage collection (GC) of unreferenced objects. GC is important because proper GC improves the memory management of the application and the performance.
The following are the topics we will go through in this chapter...