~/talk

“When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

Talkat CppCon 2017 · 2017-09-24..09-29· [software-architecture]
name:Carl Cook
links:none on file
slides:none on file

Describes concrete, production-proven fixes: replacing scattered error handlers nets ~100–200 ns, avoiding virtuals via template-based configuration removes hotpath calls, a branch-predictor/cache warmup ( simulate 1,000–10,000 orders ) shaves ~5 µs, and a custom cache-friendly hash table runs ~2x faster in benchmarks. Uses Google Benchmark, perf and a packet-capture lab with nanosecond timestamps to measure wire-to-wire latency (examples cite ~2.5 µs goals). Notes real pitfalls: placement new null checks, glibc pow pathologies (~0.5 ms), and system/tuning matters.

AI-written summary · about

  1. 0:00Introduction and overview
  2. 1:51What trading systems do
  3. 5:05The hotpath explained
  4. 7:17Why C++ for trading
  5. 10:53Speed of light and latency
  6. 12:18Daily low-latency techniques
  7. 18:37Memory allocation pitfalls
  8. 19:18Exceptions performance impact
  9. 20:21Removing branches in hotpath
  10. 22:26Multithreading considerations
  11. 23:50Data lookup optimizations
  12. 25:35Hash table performance
  13. 32:07Inlining and no-inlining
  14. 33:56Hardware branch predictor
  15. 37:58CPU cache and cores
  16. 40:52Placement new inefficiency
  17. 42:39glibc string performance
  18. 43:49Static local variable cost
  19. 44:54Standard function allocations
  20. 45:37glibc power function issues
  21. 47:02Avoiding system calls
  22. 48:13Profiling vs benchmarking
  23. 50:37Production-like benchmarking
  24. 52:45Summary and key takeaways
~/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.