Mechanical Sympathy: Designing Software for Modern CPU Caches
Co-Creator of LMAX Disruptor & Aeron
Demonstrates how cache lines, false sharing, store buffers, branch prediction, and lock-free ring buffers govern orders-of-magnitude latency differences on modern hardware.
What does it really mean to design software for high-performance? Performance is such a generic and misunderstood subject. In this talk the subject of software performance will be explored. We will focus on what is means to achieve sufficient response times, throughput, and scalability.
Once the theory is out of the way we will dig into how modern hardware works and what we need to know about abstractions mapping to our software designs. These abstractions are the key to the models our code represents. The author has not meet many abstraction layers he did not enjoyed violating. There is a good reason for this. So many of our abstractions are leaky or just plain wrong.
