Fast and small C++ - When efficiency matters
summary
Shows concrete microtechniques and measurable outcomes: uses compressed_pair with no_unique_address EBO to keep unique_ptr a single pointer; compares SSO sizes — libstdc++/MSVC ≈7‑byte payload, libc++ ≈15 bytes, FBstring up to 23 bytes — and explains the branch tradeoffs. Demonstrates constexpr reducing RAM/copies (assembly example: O0 209→78 instructions, O3 42→31), uses C++ Insights to inspect layouts, and points to a C++26 defect fix that lets compilers make std::initializer_list backing arrays static.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:01Unique pointer and deleters
- 8:13Empty base class optimization
- 18:56Small string optimization
- 24:23Comparing string implementations
- 31:50Clang’s SSO
- 37:21Small string payload limit
- 38:29Facebook’s FBString
- 40:26constexpr and memory
- 48:25Static optimization with initializer_list
- 55:36Summary and Q&A
related talks
01h 03mFast and Small C++ - When Efficiency Matters
01h 00mMoving Faster: Everyday efficiency in modern C++
32mSmall is beautiful: Techniques to minimise memory footprint
58mC++ Performance and Optimisation
01h 01mFaster, Easier, Simpler Vectors
55mCode Size Compiler Optimizations and Techniques for Embedded Systems
36mInterfaces Matter
55mWriting Cache-Friendly C++
