CppCon 2016 has ended
Wednesday, September 21 • 3:15pm - 4:15pm
Achieving ultimate performance in financial data processing through compile time introspection: CME MDP3 example

Log in to save this to your schedule, view media, leave feedback and see who's attending!

C++ does not yet have complete introspection (reflection), but in many cases it may be easy to complete. We will present an example of what we think is is a general method whenever data specifications may be converted to C++ through a code generator. We have done this for processing financial market data very sensitive to latencies and obtained huge advantages of
* Economy of effort
* Performance
* Reliability
* Extensibility
over any other option we considered. We will show:
* How we converted the specification of market data from an important exchange, CME MDP3, into C++ types and a minimal set of variadic templates that give us full introspection capabilities
* The code and the techniques to implement generic introspecting software components, including these concrete examples:
* Converting any value that belongs to the specification into string
* Testing for whether the value is null in any of the three ways the specification allows encoding of null values
* Applying design patterns such as flyweights to traverse the data with zero or minimal performance cost
* Subscription mechanisms

We hope these code examples will show how straightforward and maintainable metaprogramming techniques can emulate introspection for truly significant quality gains.

Support code at github:

avatar for Eduardo Madrid

Eduardo Madrid

Software Developer, Crabel Capital Management
Eduardo Madrid has over 18 years of C++ experience and works as Software Developer at Crabel Capital Management. The material for this presentation is derivative of work made by him currently running in production at "Crabel" to process CME MDP3 financial data. "Crabel" is a Hedge... Read More →

Wednesday September 21, 2016 3:15pm - 4:15pm PDT
White (Room 407) Meydenbauer Center