We now know how to get information about the performance of our application. From high-level execution time to deep container internals, we can determine which part of the code is slowing us down.
However, this is mainly about our code or stack (the Java EE container). There are other criteria that can influence the performance of the same machine (considering that the CPU and the memory are fixed).
In this chapter, we will investigate the following:
- How JVM manages the memory and automatically releases unused objects
- Compare different options to release the memory that JVM offers
- See how the server configuration can also impact the performance