What Programmers Should Know About Memory Allocation - S. Al Bahra, H. Sowa, P. Khuong - CppCon 2019
http://CppCon.org Discussion & Comments: / cpp Presentation Materials: https://github.com/CppCon/CppCon2019 — What Programmers Should Know About Memory Allocation - S. Al Bahra, H. Sowa, P. Khuong - CppCon 2019 Memory allocators are a critical part of the run-time system for languages such as C++. Over the last few decades, the requirements for general-purpose memory allocation have become significantly more complex with different allocators evolving to handle different workloads varying by process age, concurrency, allocation patterns, object sizes, access patterns and more. Unfortunately, many application developers are unaware of their internals and their respective limitations and this directly impacts their ability to debug both performance and correctness problems related to dynamic memory allocation. This talk will introduce the current industry standard memory allocators (general-purpose and specialized), the categories of memory allocators and their intended workloads and shed some light into their design and implementation. With this foundation, we will review real world problems and their respective solutions, where application performance was significantly hindered or complex bugs were introduced. The audience will walk away with knowledge of (sometimes surprising) anti-patterns to avoid when making use of dynamic memory allocation, and new technologies and techniques to use for improving performance and reliability. We will investigate cases where the general purpose allocator interface fails, and when alternatives are better. Finally, we will reinforce our new-found understanding of some basic memory allocator internals to improve our ability to investigate and root cause heap corruption bugs that would otherwise take hours (sometimes even weeks) to fix. Finally, we will look to the horizon and introduce some exciting new work being done in the area including memory allocator interfaces for improved spatial locality for related objects from both academia and industry. — Samy Al Bahra Samy Al Bahra is the cofounder of Backtrace, where he is helping build a modern debugging platform for today’s complex applications. Prior to Backtrace, Samy was a principal engineer at AppNexus, where he played a lead role in the architecture and development of many mission-critical components of the ecosystem. His work at AppNexus was instrumental in scaling the system to 18 billion impressions with orders of magnitude in efficiency improvements. Prior to AppNexus, Samy was behind major performance improvements to the core technology at Message Systems. At the George Washington University High Performance Computing Laboratory, Samy worked on the UPC programming language, heterogeneous computing, and multicore synchronization. Samy is also the founder of the Concurrency Kit project, which is part of the FreeBSD kernel and several leading technology companies rely on for scalability and performance. Samy serves on the ACM Queue Editorial Board. --- Hannes Sowa --- Paul Khuong After toiling on his dissertation about mathematical optimisation methods for large-scale network design, Paul Khuong has spent the majority of his professional and hobbyist life reverse engineering and modernising C, C++, and Common Lisp legacy systems. When not engaged in code archaeology, Paul enjoys overfitting classic data structures and algorithms to contemporary computers, which lead to his work on linear Robin Hood hashing, on searching in sorted arrays and permutations thereof, and on abusing timesharing for even more asymmetric synchronisation. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com YouTube Channel Managed by Digital Medium Ltd: https://events.digital-medium.co.uk Work at Hudson River Trading (HRT): https://tinyurl.com/safxfctf

Freestanding C++ - Past, Present, and Future - Ben Saks - CppCon 2019

C++20: C++ at 40 - Bjarne Stroustrup - CppCon 2019
![[BLU] What Programmers Should Know About Memory](https://i.ytimg.com/vi/DsMN2KCA6dw/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFryq4qpAxkIARUAAAAAGAElAADIQj0AgKJDeAG4AvMY&rs=AOn4CLCSrASOj7BZKq7JvgOvuZaZwbe9-g&usqp=CCY)
[BLU] What Programmers Should Know About Memory

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”

What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

CppCon 2017: James McNellis “Everything You Ever Wanted to Know about DLLs”

Back to Basics: Pointers and Memory - Ben Saks - CppCon 2020

Non-Uniform Memory Architecture (NUMA): A Nearly Unfathomable Morass of Arcana - Fedor Pikus CppNow

System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra

The Cost of Concurrency Coordination with Jon Gjengset

Branchless Programming in C++ - Fedor Pikus - CppCon 2021

CppCon 2015: Andrei Alexandrescu “std::allocator...”

The World's Most Important Machine

C++: Some Assembly Required - Matt Godbolt - CppCon 2025

Modern Architecture 101 for New Engineers & Forgetful Experts - Jerry Nixon - NDC Copenhagen 2025

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

Taming dynamic memory - An introduction to custom allocators in C++ - Andreas Weis - code::dive 2018

SIMD and vectorization using AVX intrinsic functions (Tutorial)

