Memory management
mimalloc is nice general purpose allocator.
Notes
Links
- What Every Programmer Should Know About Memory (2007) (Web)
- Memory Management Reference - Resource for programmers and computer scientists interested in memory management and garbage collection. (HN)
- Memory Pool System - Flexible and adaptable memory manager. Among its many advantages are an incremental garbage collector with very low pause times, and an extremely robust implementation. (Code)
- A unified theory of garbage collection (2004) (PDF) (PDF)
- Memory Bandwidth Napkin Math (2020)
- Isolation Alloc - New general purpose secure memory allocator that implements an isolation security strategy to mitigate memory safety issues.
- Broom - Ergonomic tracing garbage collector that supports mark 'n sweep garbage collection.
- Writing a Memory Allocator (2019) (HN)
- Writing a Pool Allocator (2019)
- Writing a Mark-Sweep Garbage Collector (2020)
- rpmalloc - Cross platform lock free thread caching 16-byte aligned memory allocator implemented in C.
- memleax - Debugs memory leak of a running process by attaching it, without recompiling or restarting.
- An introduction to virtual memory (2020) (HN)
- Visualizing memory management in Rust (2020)
- Memory Allocators 101 - Write a simple memory allocator (2015)
- gperftools - Collection of a high-performance multi-threaded malloc() implementation, plus some pretty nifty performance analysis tools.
- Memory Consistency Models: A Tutorial (2016) (HN)
- The memory models that underlie programming languages (2016) (HN)
- Modern garbage collection (2016) - A look at the Go GC strategy.
- Virtual Memory Tricks (2017)
- Reference counting vs GC (2020)
- Memory allocator showdown (2020)
- Understanding memory initialization patterns
- Custom Allocators Demystified (2020) (HN)
- MMTk - Framework for the design and implementation of memory managers. In Rust. (Web)
- Quantifying the Performance of Garbage Collection vs. Explicit Memory Management (2005)
- The Lost Art of Structure Packing - Technique for reducing the memory footprint of programs in compiled languages with C-like structures - manually repacking these declarations for reduced size.
- klox - Proof-of-concept demonstration of O(1) garbage collection. (HN) (Lobsters)
- herdtools7 - Tool suite to test weak memory models.
- Sound Garbage Collection for C using Pointer Provenance (2020)
- Memory Management in Lobster
- Generational references faster than reference counting (2021) (Lobsters)
- When allocators are hoarding your precious memory (2021)
- Writing a Simple Garbage Collector in C (2020) (Lobsters)
- A look into Automatic Reference Counting (2021)
- Papers for heap memory analysis and leak detection (2021)
- Memory Management Landscape
- Summarizing Garbage Collection (2016)
- Visualizing Garbage Collection Algorithms (2014)
- Baby's First Garbage Collector (2013) - Building simple mark-sweep garbage collector in C. (Code)
- Heapusage - Find memory leaks in Linux and macOS applications.
- Slitter - C- and Rust-callable slab allocator implemented primarily in Rust, with some C for performance or to avoid unstable Rust features.
- Mitigating Memory-Safety Bugs with Efficient Out-of-Process Integrity Checking (2021)
- A 5x reduction in RAM usage with Zoekt memory optimizations (2021) (HN)
- Friendship ended with the garbage collector (2021) (HN)
- Don’t forget about memory management — Go Time (2021)
- DUMA - Detect Unintended Memory Access. Red-Zone memory allocator.
- regalloc2 - New register allocator.
- Formalization of properties of a simple imperative, memory-safe language
- mtrace - Version of QEMU modified to log memory accesses and other system events to help analyze and understand the memory access patterns and cache line behavior of operating system-level code.
- Memory Performance in a Nutshell
- Awesome Allocators
- Interesting Garbage Collection Patterns (2021)
- SuperMalloc - Super Fast Multithreaded malloc() for 64-bit Machines.
- Mimalloc - Compact general purpose allocator with excellent performance.
- Mimalloc: Free List Sharding in Action (2019) (Lobsters)
- Garbage collection algorithms
- Vizzy - Tool for profiling heap usage and memory management.
- GCGC : Garbage Collection Graph Collector
- mem - Memory allocator for Go.
- 100LOC C impl of memset, that is faster than glibc's (HN)
- Debugging memory corruption: who the hell writes “2” into my stack? (2016) (HN)
- bustd - Lightweight process killer daemon for out-of-memory scenarios for Linux.
- What's a Memory Allocator Anyway? - Benjamin Feng (2021)
- The Garbage Collection Handbook: The art of automatic memory management (2020)
- memflow - Physical memory introspection framework. (Web)
- scanflow - Comprehensive memory scanning library based on memflow.
- tinyalloc - Replacement for malloc / free in unmanaged, linear memory situations, e.g. WASM and embedded devices.
- gcmodule - Garbage collection for Rust inspired by CPython's gcmodule.
- Optimising memset and memcpy (HN)
- Deconstructing the Garbage-First Collector (2020)
- llmalloc - Low-latency malloc implementation.
- Does the Bronze Garbage Collector Make Rust Easier to Use? A Controlled Experiment (2021) (Lobsters)
- Hardened malloc - Hardened allocator designed for modern systems.
- An Empirical Lower Bound on the Overheads of Production Garbage Collectors (2021) (Tweet)
- Fuite - CLI tool for finding memory leaks in web apps. (Article) (HN)
- malloc-rs - Implementation of malloc, realloc, calloc, and free in Rust.
- zig-gc - Simple mark-and-sweep garbage collector written in Zig.
- Declarative memory management (2019) (HN)
- Signals and Threads | Memory Management (2022) (Lobsters)
- HardsHeap - Universal and Extensible Framework for Evaluating Secure Allocators.
- CertiGC - Formally verified generational garbage collector.
- How Much Memory Is My Program Really Using? (2022)
- TinyGC (Tiny Garbage Collector) - Implementation of the subset of API of the well-known Boehm-Demers-Weiser Conservative GC.
- The Tower of Weakenings: Memory Models For Everyone (2022) (Reddit)
- Understanding Memory Allocation Size Limitations with Level Zero (2022)
- Implementing a safe garbage collector in Rust (2022) (Reddit) (HN)
- GC workbench - Workspace for experimenting with garbage collectors.
- Chris Lattner on garbage collection vs. Automatic Reference Counting (2017) (HN)
- Low-Latency, High-Throughput Garbage Collection (2022)
- Distilling the Real Cost of Production Garbage Collectors (2022) (HN)
- Forgetting about the problem of memory (2022) (Lobsters)
- Memory safety for SerenityOS (2022)
- Benchmarking Malloc with Doom 3 (2022)
- Elise - Concurrent garbage collection crate based on shifgrethor.
- shifgrethor - Define an API for precise, tracing garbage collection in Rust which upholds all of Rust's safety guarantees.
- Treadmill garbage collector by H. Baker (2022) (HN)
- Valgrind - Instrumentation framework for building dynamic analysis tools. Automatically detect many memory management and threading bugs, and profile your programs in detail. (Twenty years of Valgrind) (HN) (Lobsters)
- Vale's Hybrid-Generational Memory (2021)
- Reference count, don't garbage collect (2022) (HN)
- Automatic memory management with short pauses that is simple to implement? (2022)
- Perceus: Garbage Free Reference Counting with Reuse
- CactusRef - Cycle-Aware Reference Counting in Rust.
- On "correct and efficient work-stealing for weak memory models" (2022)
- Untangling Lifetimes: The Arena Allocator (2022) - Making performant dynamic manual memory management in C feel almost like garbage collection. (Lobsters) (HN)
- Memory Safety in a Modern Systems Programming Language (2022)
- The sticky mark-bit algorithm (2022)
- How we Eliminated 99% of gVisor Networking Memory Allocations with Enhanced Buffer Pooling (2022)
- Memory safety in C++, Zig, & Rust (2022)
- samsara - Reference-counting cycle collection library in rust.
- xv6: How exactly is memory addressed? (2020)
- Using rr to quickly debug memory corruption (2022)
- I Want a Memory Diagram Generator (2022) (Lobsters)
- Implementing the Perceus reference counting GC (2022)
- Fast memcpy, a system design (2022) (HN)
- gc-arena - Experimental system for rust garbage collection.
- Does Rust have the ultimate memory management solution? (2023)
- Pictures of a working garbage collector (2023) (HN)
- ugc - Single-header incremental garbage collector library.
- How Memory Safety Approaches Speed Up and Slow Down Development Velocity (2023)
- Garbage Collection (Mark & Sweep) - Computerphile (2023) (Lobsters)
- Rulloc - General purpose memory allocator written in Rust.
- smol world - Compact garbage-collected heap and JSON-like object model.
- OffsetAllocator - Fast O(1) offset allocator with minimal fragmentation.
- Exploring some worst-case latencies in GCs
- It’s a smol_world: thoughts and lessons (2023) (Lobsters)
- Rust and RAII Memory Management (2023)
- I built my own memory profiler (in Rust, on Linux) (2023)
- mevi - Memory visualizer in Rust (ptrace + userfaultfd).
- The Garbage Collection Handbook: The Art of Automatic Memory Management (2023) (HN)
- Memory Allocation (2023) (HN)
- ps_mem - Utility to accurately report the in core memory usage for a program.
- Basic Allocator - Home-grown memory allocator written entirely in Rust. It is simple, and meant primarily for educational purposes.
- Memory Safety Without Borrow Checking, Reference Counting, or Garbage Collection (2023) (HN)
- Experimenting with Memory Management for Basil (2023) (Lobsters)
- Introducing Riptide: WebKit’s Retreating Wavefront Concurrent Garbage Collector (2017)
- Garbage Collection for MVCC – MyRocks, InnoDB and Postgres (2023) (HN)
- Type Systems for Memory Safety
- I built a garbage collector for a language that doesn’t need one (2023)
- Comet - Collection of various trace-based garbage collectors that can be used to implement programming language runtime in Rust.
- Parallel garbage collection for SBCL (Lobsters)