When you need a container, pick std::vector
What does that mean, though?
This talk will answer that from the ground-up. We will cover the need for CPU caches and their consequences, how the CPU tricks to make them as seamless as possible, and when and why those tricks sometimes fail. This means that you need to be careful when structuring your program to avoid slowdowns. We will thus explore cache-friendly data structures, data-oriented design, and how to avoid common pitfalls.
Talks
- CPU Caches and Why You Care — Scott Meyers
- Designing for Efficient Cache Usage — Scott McMillan
- You Can Do Better than std::unordered_map: New Improvements to Hash Table Performance
- Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step — Matt Kulukundis
- Data-Oriented Design and C++
- Designing and Implementing a New Allocator Model — Jonathan Müller