Overview
This course delves into the intricacies of performance in the modern computing era, particularly focusing on Java programming. By exploring memory layout and the impact on program performance, it teaches learners how to choose collection implementations for optimal performance. The course covers topics such as computational complexity, memory hierarchy, data locality, and reducing memory footprint. The teaching method involves analyzing the performance of simple programs using alternative collection implementations and frameworks, as well as the ObjectLayout library. This course is designed for Java programmers seeking to enhance their understanding of performance-critical code and improve the efficiency of their programs.
Syllabus
Intro
Your Father's Complexity
What is Computational Complexity?
Who Is Your Father? Another Candidate
What Josh Explained...
Was Complexity Study Ever Worth It?
The Golden Age of Complexity Analysis
Keeping the Cores Running Today
The Memory Hierarchy
Stride Prefetching
Data-Dependent Loads
What's Going On?
Primitive Array
Demo
Reducing Memory Footprint
Improving Data Locality
Taught by
Devoxx