Summary
This chapter focused on loops, fundamental programming constructs, and how to get the most out of them from a runtime performance perspective. Concepts covered included loop overhead, loop unrolling, benchmarks, loop fusion, loop parallelization, and loop vectorization. We used code examples to provide insights and demonstrate best practices.
We explored techniques, strategies, and best practices to help you get the best performance out of your loops and to prevent the unintentional introduction of substantial bottlenecks that undermine runtime performance.
The next chapter takes a specific look at Java object pooling, which is a design pattern used to manage reusable objects to conserve resources and improve application performance.