Memory management#
Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when no longer needed. This is critical to any advanced computer system where more than a single process might be underway at any time.
Read more on Wikipedia.
Allocators#
mimalloc
: A compact general purpose allocator with excellent performance
Approaches#
- Garbage collection
- Manual memory management
- Region-based memory management
- Stack-based memory allocation
Techniques#
Issues#
Resources#
Text#
- [2023] A simple, arena-backed, generic dynamic array for C
- [2023] An easy-to-implement, arena-friendly hash map
- [2023] Arena allocator tips and tricks
- [2023] Memory Allocation
- [2022] mmap(1Tb): A Rust arena allocator (ab)using Linux overcommit
- [2022] Safety in Non-Memory-Safe Languages ⭐
- [2022] Untangling Lifetimes: The Arena Allocator ⭐
- [2021] Arenas in Rust
- [2019] Memory Management in Lobster