This is the second post in a three-post series covering the fundamentals of software optimization. You can find the introduction here. You can find Part I here. You can find Part III here. You can find the companion GitHub repository here.
Part I covered the development of the benchmark, which is the “meter stick” for measuring performance, and established baseline performance using the benchmark.
This post will cover the high-level optimization process, including how to use profile software performance using VisualVM to identify “hot spots” in the code, make code changes to improve hot spot performance, and evaluate performance changes using a benchmark.
Continue reading “Fundamentals of Software Optimization Part II — Optimizing Wall Clock Performance”