Keep it Small
This talk is about using memory efficiently. It will begin with a high-level overview of how memory is managed by hardware and the operating system. Memory hierarchies, cache lines, virtual memory, memory managers, and the stack will be briefly covered. There will also be an introduction to C++ data structure alignment.
Next we will look at strategies for avoiding small and frequent dynamic memory allocations by using the stack. This will be demonstrated by exploring some design choices of the libc++ implementation of std::string.