Data Orientation For The Win!
summary
Argues data-oriented layouts are practical by building Generic Programming components that replace pointers and virtual dispatch with Zoo type-erasure and explicit handle indices, claims better performance than inheritance+virtual, and demonstrates hybrid buffers that scatter vtable-like dispatch out of objects to solve local-buffer sizing. Shows macros and Boost preprocessor sequences to auto-generate columnar layouts, introduces an infrequent annotation for sparse fields, and outlines snapshot-friendly relocatability plus memory-mapped serialization that already works in production experiments.
AI-written summary · about
chapters (19)
- 0:00Intro
- 2:20There are big inefficiencies
- 4:26Plan
- 6:21What is Data Orientation?
- 8:51Abstraction, Modeling
- 10:04Give Primacy to Data
- 10:58Generally C++ Hostile
- 12:23Encapsulation
- 19:55State Representation Solution
- 22:15Subtyping
- 28:54Generality vs. Frequent uses
- 32:25Entity Component Systems
- 34:51If we can do scattering and handles, then we win
- 38:14Handle types
- 41:06Poison: Macros
- 41:34Type Annotations
- 44:46Less general improvements
- 45:09A little beyond
- 46:47Conclusion
related talks
40mUsing Data-Oriented Design to Build Apps Better
01h 04mData oriented design in practice
19mDecoupling Data Layouts from Bounding Volume Hierarchies
36mInterfaces Matter
56m“High Performance Code 201: Hybrid Data Structures"
22mViewing The World Through Array-Shaped Glasses
05mC Pointers
06mLightning Talk: Cute Approach for Polymorphism in C++
