~/talk

More Speed & Simplicity: Practical Data-Oriented Design in C++

Talkat NDC TechTown 2025 · 2025-09-22..09-25· [c-and-cpp]
slides:none on file

A live particle demo refactors an OOP design (vector<unique_ptr<Entity>, virtual dispatch, heap allocs) into data‑oriented layouts (separate vectors for rockets/emitters/particles, index handles, vector<optional> slots), then to structure-of-arrays (SoA) with helper templates and boost::pfr. Benchmarks show original worst cases hitting ~21.6 ms/frame at 1M entities, the DOD refactor yields ~70% decrease in update time and another SoA pass adds ~32% more improvement; rendering becomes ~8× then ~2× faster. OpenMP parallel loop and C++17/C++26 reflection paths are used and the demo runs noticeably smoother.

AI-written summary · about

  1. 0:00Introduction
  2. 1:45Data-oriented design overview
  3. 2:58Live demo and performance
  4. 5:25Object-oriented implementation
  5. 9:04Managing entity relationships
  6. 12:10OOP performance analysis
  7. 14:12Hardware and memory hierarchy
  8. 19:07Inefficiencies in OOP
  9. 23:34Mindset shift
  10. 26:41Data-oriented design principles
  11. 29:30Data-oriented implementation
  12. 36:31Performance and simplicity
  13. 40:39Cognitive overhead and coupling
  14. 43:33Tooling and opportunities
  15. 49:05Multithreading advantages
  16. 50:31Refining data layout
  17. 52:00Structure of Arrays (SOA)
  18. 55:26Advanced SOA techniques
  19. 59:31Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.