Performance Optimization in Software Development - Being Friendly to Your Hardware
summary
Claim: real-world hardware limits matter — memory goodput sits around ~10% of theoretical, DDR capacitor speed barely improves across generations, and bank/rank/page geometry and address mapping change performance meaningfully. Demonstrations: micro‑vs‑real benchmarks, memcpy hot paths (including ClickHouse's tuned copy) and compiler/decoder tricks for instruction fusion. Practical tools: hardware performance counters (nonfree to enable) and platform microcode/rep movs. Conclusion: expect specific measurements, concrete numbers, and actionable layout or algorithm changes — not high‑level platitudes; branch predictor matters, measure on real topology.
AI-written summary · about
chapters (15)
- 0:00Welcome
- 1:10C++ on hardware
- 3:41Dynamic memory basics
- 9:02Memory hierarchy limits
- 15:14Parallel memory access
- 20:56Modern processor core
- 27:13Code density myths
- 31:05Registers and out-of-order
- 36:05Speculative execution risks
- 36:46Branch prediction example
- 42:26Optimizing memcpy
- 47:44Hashing and loop unrolling
- 52:05Why optimization is hard
- 55:00Future instruction sets
- 57:46Q&A
related talks
01h 06mPerformance engineering: being friendly to your hardware
51mDesigning for Performance
01h 37mAn Overview of Program Optimization Techniques
01h 04mDesign for Performance
01h 00m“Want fast C++? Know your hardware!"
37mHigh Performance Computing: The Modern Approach
50mDesigning for Performance
58mOptimization Tips - Mo' Hustle Mo' Problems
