~/talk

C++ Cache Friendly Data + Functional + Ranges = ❤️

Talkat C++ on Sea 2024 · 2024-07-02..07-05· [frontend-architecture]
slides:none on file

Claims an ergonomic C++ wrapper that gives the speed of structs‑of‑vectors with normal tuplelike and range APIs, using modern features (ranges, structured bindings, tuple_size/get specialization, concepts, constexpr arrays). Demonstrates raw numbers: a naive array-of-structs run shows ~2.5B cache references and ~2.4s, a hand‑written struct‑of‑vectors drops to ~640M refs and ~2.2s, and the ergonomic table abstraction runs ~1.6s with far fewer cycles. Implements struct-of-vectors abstraction, stable row id via index+reverse-index, iterator-as-offset, and select/apply column projection; the library exists on GitHub and the approach works and measures faster.

AI-written summary · about

  1. 0:00Introduction
  2. 1:30ECS data storage inspiration
  3. 2:16Cache lines and access patterns
  4. 5:09Struct vs SoV performance
  5. 8:43Ergonomics challenges
  6. 13:04Stable row IDs need
  7. 17:21Implementing row IDs
  8. 21:46Row ID maintenance impact
  9. 25:05Adding iterator interface
  10. 30:37Row IDs from iterators
  11. 35:04Selecting columns
  12. 45:29Calling functions on columns
  13. 52:31Summary
~/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.