Microbenchmarking is used to test the performance of a system. This differs from macrobenchmarking, which runs tests on different platforms for efficiency comparison and subsequent analysis. With microbenchmarking, we typically target a specific slice of code on one system such as a method or loop. The primary purpose of microbenchmarking is to identify optimization opportunities in our code.
There are multiple approaches to benchmarking; we will focus on using the JMH tool. So, why benchmark at all? Developers do not always concern themselves with performance issues unless performance is a stated requirement. This can lead to post-deployment surprises that could have been avoided if microbenchmarking was conducted as part of the development process.
Microbenchmarking takes place across several phases of a process. As shown in the following diagram,...