This chapter introduces benchmarking as a fundamental method to measure the performance of a Java application. It also covers the JVM side of performance, discussing how the virtual machine can be made to execute Java faster.
Benchmarking can, and should, be used to regression test an application during development, to ensure that new code modifications do not impact performance. Time and time again during our careers, we have seen unexpected performance regressions crop up from seemingly innocent changes. Continuous, preferably automated, benchmarking is the best way to prevent this from happening. Each software project should have a performance goal and benchmarking is the way to make sure that this goal is achieved.
Once we have discussed the hows and whys of good benchmarks, we will go on to discuss how to draw conclusions from what is measured and when there is a need to change the application or to just reconfigure the JVM by tuning parameters and setup...