Developer, researcher, trainer. Forty years in computing. Co-author “Java Generics and Collections”, author “Mastering Lambdas”. Java Champion, JavaOne Rock Star (x3).
It’s no simple matter to explain the performance of even a simple Java program, when instruction execution time is often overshadowed by other costs. Even when network and IO have been taken into account, two programs with similar computational complexity—their big-O characteristics—can differ in cache usage, with big resulting differences in performance.
For the Java programmer, this means that big-O analysis no longer gives enough guidance in choosing a collection implementation for performance-critical code. In this tutorial we’ll explore optimization of the memory layout and performance of some simple programs via alternative collection implementations and frameworks, and object layout libraries.