This is the resource repositry for my memory managment lecture / workshop series at Breda University of applied sciences - Games. It is mainly targeted for game developers
- Great Reads directly about Memory Managment
- Great Youtube Videos directly about Memory Managment
- Great C++ PMR related Talks, Reads
- Related Videos & Articles as important
- Memory Debugger
- Libs, frameworks
- Other related Lists
- Other Stuff
- A great compilation of memroy mangement information mtrebi/memory-allocators
- CPU Cache Wikipedia
- CPU Caches and Why You Care
- Why software developers should care about CPU caches
- std::bit_cast Watch: CppCon 2019: Timur Doumler “Type punning in modern C++” and C++ Weekly - Ep 185 - Stop Using reinterpret_cast! first
- Memory Allocation Strategies
- Virtual Memory Tricks (Examples are in C but still transferable to C++)
- Make your programs run faster by better using the data cache
- C++: Custom memory allocation (tutorial)
- mtrebi/memory-allocators (example tutorial)
- Dynamic Memory Allocation and Virtual Memory
- System Programming
- Building a Low-Fragmentation Memory System for 64-bit Games GDC - Aaron MacDougall (Sony London Studio) If you have acess to the VAULT you can watch it otherweise here are the notes.
- Writing a Game Engine from Scratch - Part 2: Memory Gamasutra article
- What Every Programmer Should Know About Memory
- CppCon 2017: John Lakos “Local ('Arena') Memory Allocators (part 1 of 2)”
- CppCon 2017: John Lakos “Local ('Arena') Memory Allocators (part 2 of 2)”
- CppCon 2019: John Lakos “Value Proposition: Allocator-Aware (AA) Software”
- CppCon 2017: Bob Steagall “How to Write a Custom Allocator”
- CppCon 2015: Andrei Alexandrescu “std::allocator...”
- Taming Dynamic Memory - An Introduction to Custom Allocators - Andreas Weis [ACCU 2019]
- C++Now Michael Spencer. Alignment in C++: Use, Limitations, and Extension
- Alisdair Meredith. Making Allocators Work. CppCon, 2014. Part1
- Alisdair Meredith. Making Allocators Work. CppCon 2014. Part2
- Alisdair Meredith. Allocators in C++11. C++Now May 2013
- Alisdair Meredith. An allocator model for std2. CppCon Sept. 25, 2017 *about the evolvment of the allocators from C++98 to C++17
- C++Now 2017: Bob Steagall “Testing the Limits of Allocator Awareness" - how to test your allocator
- Pablo Halpern. Modern Allocators: The Good Parts. CppCon Gives a simple example for polymorpic allocators
- CppCon 2019: Alisdair Meredith, Pablo Halpern “Getting Allocators out of Our Way”
- CppCon 2017 Sergey Zubkov. From Security to Performance to GPU Programming: Exploring Modern Allocators
- CppCon 2014 Stephan Lavavej. STL Features and Implementation Techniques
- CppCon 2015: Scott Wardle “Memory and C++ debugging at Electronic Arts" EASTL related
- Debugging memory corruptoins in C++ - Mateusz Nowak - Meeting C++ 2019
- Introduction to Memory Management in Linux Introduction to Memory Management in Linux - Matt Porter, Konsulko
- Lectures
- C++Now 2018 Arthur O’Dwyer. An Allocator is a Handle to a Heap.
- CppCon 2018: Arthur O'Dwyer “An Allocator is a Handle to a Heap”
- C++ Weekly - Ep 248 - Understand the C++17 PMR Standard Allocators and Track All the Things
- C++ Weekly - Ep 222 - 3.5x Faster Standard Containers With PMR!
- C++ Weekly - Ep 245 - PMR: Mistakes Were Made (By Me)
- C++ Weekly - Ep 250 - Custom Allocation - How, Why, Where (Huge multi threaded gains and more!)
- CppCon 2017: Pablo Halpern “Allocators: The Good Parts”
Talks
- C++Now 2019: Arthur O'Dwyer “Trivially Relocatable”
- Writing cache friendly C++ - Jonathan Müller - Meeting C++ 2018
- CppCon 2019: Timur Doumler “Type punning in modern C++”
- C++ Weekly - Ep 185 - Stop Using reinterpret_cast!
- C++ Weekly - Ep 236 - Creating Allocator-Aware Types
- What do you mean by "cache friendly"? - Björn Fahller - code::dive 2019
- Data-Oriented Design
- Memory & Caches by Matt Godbolt
- CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part I"
- CppCon 2014: Herb Sutter "Lock-Free Programming (or, Juggling Razor Blades), Part II"
- CppCon 2015: Scott Wardle “Memory and C++ debugging at Electronic Arts”
Reads
- Writing cache-friendly code - Alexander Toktarev
- Writing Cache-Friendly C++ - Jonathan Müller - Meeting C++ 2018
- Benchmarks of Cache-Friendly Data Structures in C++
- Computer Organization | Locality and Cache friendly code
- Data Locality - Game Programming PatternsOptimization Patterns
- Writing Cache-Friendly Code Gerson Robboy Portland State University
- Writing Cache Friendly Code
- What every programmer should know about memory, Part 1
- Avoiding instruction cache misses - Paweł Dziepak
- On lists, cache, algorithms, and microarchitecture - Paweł Dziepak
- Atomics ModernesC++.com
- C++ Core Guidelines: Concurrency and lock-free Programming
- C++ Core Guidelines: The Remaining Rules to Lock-Free Programming
- The C++ memory model and operations on atomic types
- Data oriented design book
- TLSF: a New Dynamic Memory Allocator for Real-Time Systems
- Memory stomp allocator for Unreal Engine 4
- VLD Memory Debugger (Windows)
- Valgrind (Linux)
- Dr Memory (Linux & Windows)
- AddressSanitizer
- CLion Google sanitizers
- MTuner
- Finding memory leaks using the crt lib
- Debugging Heap Corruption
- How to monitor a silent process exit using GFlags
- Find memory leaks with the CRT library (Windows)
- EASTL - A console standard lib
- dlmalloc : Doug Lea's malloc
- deluxe68 : A simple register allocator frontend for 68k assembly
- KernelReadWriteMemory : Simple code to manipulate the memory of a usermode process from kernel.
- malloc_geiger :
- mimalloc-bench : Suite for benchmarking malloc implementations.
- allocator_bench : bench of various memory allocators
- mio : Cross-platform C++11 header-only library for memory mapped file IO
- snmalloc : Message passing based allocator
- mimalloc : mimalloc is a compact general purpose allocator with excellent performance.
- hardened_malloc : Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platfo…
- objectpool : Object pool implementation in C++11
- rampin : Try to make Windows preload file into RAM by memory mapping it
- tgc : A Tiny Garbage Collector for C
- Mesh : A memory allocator that automatically reduces the memory footprint of C/C++ applications.
- memory-dumper : A tool for dumping files from processes memory
- alloc-test : Cross-platform benchmarking for memory allocators, aiming to be as close to real world as it is practical
- memory-allocators : Custom memory allocators in C++ to improve the performance of dynamic memory allocation
- rpmalloc : Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
- jemalloc
- cpp-mempool : C++ header-only mempool library
- tiny : low-level library for minimizing the size of your types
- memory : STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
- Memory Performance Tools a list by MattPD
- Atomics, lock free, memory model a list by MattPD
- Cache a list by MattPD
- Prefetch a list by MattPD
- Memory Bus a list by MattPD
Awesome resources Simon! Thanks for the share!