Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Striving for Ultimate Low Latency

code::dive conference via YouTube

Overview

Limited-Time Offer: Up to 75% Off Coursera Plus!
7000+ certificate courses from Google, Microsoft, IBM, and many more.
This course aims to teach learners about striving for ultimate low latency in software development. The learning outcomes include understanding the importance of low latency, characteristics of low latency software, and techniques to avoid when developing software for predictable performance. The course covers individual skills such as using C++ tools like std::shared_ptr, exception handling, polymorphism, and memory allocation techniques like custom allocators and small object optimization. The teaching method involves a lecture-style presentation with examples and quizzes. This course is intended for software developers, particularly those interested in high-frequency trading, market data processing, and developing software with predictable performance requirements.

Syllabus

Intro
ISO C++ COMMITTEE (WG21) STUDY GROUP 14 (5614)
LATENCY VS THROUGHPUT
WHAT DO WE MEAN BY LOW LATENCY?
WHY DO WE STRIVE FOR LOW LATENCY?
HIGH-FREQUENCY TRADING (HFT)
MARKET DATA PROCESSING
HOW FAST DO WE DO?
WHAT IF SOMETHING GOES WRONG?
C++ OFTEN NOT THE MOST IMPORTANT PART OF THE SYSTEM
SPIN, PIN, AND DROP-IN
CHARACTERISTICS OF LOW LATENCY SOFTWARE
HOW NOT TO DEVELOP SOFTWARE THAT HAVE PREDICTABLE PERFORMANCE?
THINGS TO AVOID ON THE FAST PATH
QUESTION: WHAT IS THE DIFFERENCE HERE?
KEY std::shared_ptr ISSUES
C++ EXCEPTIONS
EXCEPTION SAFETY GUARANTEES
POLYMORPHISM
MULTIPLE INHERITANCE
RUNTIME TYPE IDENTIFICATION (RTTI)
DYNAMIC MEMORY ALLOCATIONS
CUSTOM ALLOCATORS TO THE RESCUE
SMALL OBJECT OPTIMIZATION (500 / 5S / SBO)
NO DYNAMIC ALLOCATION
THINGS TO DO ON THE FAST PATH
EXAMPLE OF SAFE TO USE C++ TOOLS
DO YOU AGREE?
constexpr FUNCTION
C++20 SPOILER ALERT:-
C++17 COMPILE TIME DISPATCH
TYPE TRAITS: A NEGATIVE OVERHEAD ABSTRACTION
TYPE TRAITS: COMPILE-TIME BRANCHING
WHAT IS WRONG HERE?
QUIZ: HOW MUCH SLOWER IS THE BAD CASE?
CPU DATA CACHE
ANOTHER EXAMPLE
NAIVE OBJECTMGR IMPLEMENTATION

Taught by

code::dive conference

Reviews

Start your review of Striving for Ultimate Low Latency

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.