Achieving performance in financial data processing through compile time introspection
summary
Claims a practical system that converts the CME MDP3 specification into C++ types plus a tiny variadic-template library so the compiler sees structure at compile time, yielding measurable gains in performance, reliability and extensibility. Uses a code generator, members/member_binding templates, type-injection via void_t / SFINAE trampolines, and runtime name arrays; examples include zero-cost to_string traversal, an is_null implementation (compiler reduces recursion to a few comparisons), and a template-based message dispatcher with subscribe/dispatch working in production.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:40Ultimate performance
- 1:47Financial data processing
- 2:38Compile time introspection (reflection)
- 10:36Serialization in C++
- 11:33Very simple example
- 15:05Implementing specifications, protocols
- 20:27Metaprogramming parenthesis
- 25:26Simple C++ introspection
- 38:12Realistic C++ introspection
- 45:13Null values in MDP3
- 53:35Performance experiments
- 57:57Dispatcher
related talks
36mCompile-time reflection, Serialization and ORM
48mPart I: A Performance Analysis of a Trading System over Compliers
46mExperimenting with type erasure in C++17
17mBring Your Own Data Structures to Datalog
55mBuilding an Extensible Type Serialization System Using Partial Template Specialization
51mBinary Object Serialization with Data Structure Traversal & Reconstruction in Cpp
39mData-centric Metaprogramming
48mPragmatic Code Generation for Efficient Execution
