Complicating complexity: Algorithm performance in the new machine age
Can you accurately explain the performance of a Java program? Watch Maurice Naftalin’s session at JAX London 2017 in which he explores the optimization of the memory layout and performance.
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 talk, Maurice Naftalin explores optimization of the memory layout and performance of some simple programs via alternative collection implementations and frameworks, and the open-source ObjectLayout library.