C++ OFTEN NOT THE MOST IMPORTANT PART OF THE SYSTEM
11
SPIN, PIN, AND DROP-IN
12
CHARACTERISTICS OF LOW LATENCY SOFTWARE
13
HOW NOT TO DEVELOP SOFTWARE THAT HAVE PREDICTABLE PERFORMANCE?
14
THINGS TO AVOID ON THE FAST PATH
15
QUESTION: WHAT IS THE DIFFERENCE HERE?
16
KEY std::shared_ptr ISSUES
17
C++ EXCEPTIONS
18
EXCEPTION SAFETY GUARANTEES
19
POLYMORPHISM
20
MULTIPLE INHERITANCE
21
RUNTIME TYPE IDENTIFICATION (RTTI)
22
DYNAMIC MEMORY ALLOCATIONS
23
CUSTOM ALLOCATORS TO THE RESCUE
24
SMALL OBJECT OPTIMIZATION (500 / 5S / SBO)
25
NO DYNAMIC ALLOCATION
26
THINGS TO DO ON THE FAST PATH
27
EXAMPLE OF SAFE TO USE C++ TOOLS
28
DO YOU AGREE?
29
constexpr FUNCTION
30
C++20 SPOILER ALERT:-
31
C++17 COMPILE TIME DISPATCH
32
TYPE TRAITS: A NEGATIVE OVERHEAD ABSTRACTION
33
TYPE TRAITS: COMPILE-TIME BRANCHING
34
WHAT IS WRONG HERE?
35
QUIZ: HOW MUCH SLOWER IS THE BAD CASE?
36
CPU DATA CACHE
37
ANOTHER EXAMPLE
38
NAIVE OBJECTMGR IMPLEMENTATION
Description:
Explore advanced techniques for achieving ultra-low latency in C++ programming during this comprehensive conference talk from code::dive 2017. Delve into the intricacies of high-performance computing as Mateusz Pusz, a member of the ISO C++ Committee, shares insights on optimizing code for speed-critical applications like high-frequency trading and market data processing. Learn about the characteristics of low latency software, common pitfalls to avoid, and best practices for predictable performance. Discover how to leverage C++17 features, type traits, and compile-time optimizations to minimize runtime overhead. Gain a deeper understanding of CPU data caches, memory allocation strategies, and the impact of language features like exceptions and polymorphism on latency. Through practical examples and quizzes, master the art of writing efficient C++ code that pushes the boundaries of speed and responsiveness.