History of Time: Asynchronous C++
summary
Begins from a simple blocking server that manages 190,000 req/s baseline then measures select (drops to ~160k, collapses past ~1k FDs), threading (nearly baseline but stalls as threads rise, practical numbers around 10k threads and OS limits ~50k), and epoll (single-threaded, flat scaling, epoll scales to 50k connections). Shows callback libraries (Boost.Asio wraps epoll) and coroutine libraries (Boost coroutines) map to the same OS primitives; callbacks slightly outperform coroutines in these tests. Futures suit thread handoff, not event-loop I/O.
AI-written summary · about
chapters (22)
- 0:00Start
- 4:17Background - Monitoring
- 14:021/0 - Testability
- 15:411/0 - Example Problem
- 17:451/0 - Performance Testing
- 18:501/0 - Supporting Code
- 22:10Blocking - Performance
- 23:40Blocking - Good?
- 26:11Select - Overview
- 28:03Select - 1/2
- 30:28Select - Performance
- 33:32Threading - Overview
- 36:13Threading - Compare to Blocking
- 36:47Threading - Performance
- 39:51Threading - Bad?
- 43:27Epoll - Overview
- 45:43Epoll - 1/2
- 48:02Epoll - Performance
- 50:56Epoll - Bad?
- 54:50Callbacks - Overview
- 57:00Callbacks - More Epoll
- 57:59Callbacks - In Theory (1)
related talks
20mIt's Critical: Concurrent programming as a sane programming model
01h 08mBetter Code: Concurrency
51mThe Need for Async
01h 04mAtomics, Locks, and Tasks (part 2 of 2)
43mAsync vs Sync Programming
59mAn Introduction to Multithreading in C++20
57mAsynchronous I/O and coroutines for smooth data streaming
48m“Is Parallel Programming still hard? PART 2 of 2”
