Memory management is like, important https://en.wikipedia.org/wiki/Memory_management

Stack

https://en.wikipedia.org/wiki/Stack-based_memory_allocation

alloca

Malloc

cool viualization of malloc

Pools

https://en.wikipedia.org/wiki/Memory_pool Object pools Thread pools Fixed size block allocation Can use Vec<Foo> push and pop to free

Regions

https://en.wikipedia.org/wiki/Region-based_memory_management

Arenas? Deallocate all at once. Good for fragmentation too. https://manishearth.github.io/blog/2021/03/15/arenas-in-rust/

https://dl.acm.org/doi/pdf/10.1145/3519939.3523443 fearless concurrency. domination rather than unique ownershp

ghost cells

Mads Tofte and Jean-Pierre Talpin. 1997. Region-Based Memory Management.

There is a chapter in Pierce ATAPL

ML Kit

Programming with Regions in the MLKit

e1 at r puts values e1 in region r letregion r in e creates new region

A stack of regions. They can have compile time fixed size or variable size (linked list of pages) Basically local bump pointer guys. With raw pointers you could alloc int region[500]; region_desc reg; reg.fresh = 0; reg.mem = region on the stack and that would kind of work similarly. It is arenas. But having parameters

lifetimes

Region based memory management in cyclone

Garbage Collection

https://gist.github.com/AndrasKovacs/fc9e20b0976b7e236b5899fde8f5c95d andras kovacs ideas

garbage colleciton handbook 2 semi space collector

Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Conservative Moving

generational

bump pointers

Mark and Sweep

Boehm garbage collector

https://twitter.com/sickeningsprawl/status/1560817828411936770?s=20&t=5ByjIVPCy80__MKWdWW1Aw liballocs. Garbage collector that looks at dwarf data. Asiprataional?

memory management toolkit

malloc and free are bad apis store unnecessary metadata, waste space

DangZero: Efficient Use-After-Free Detection via Direct Page Table Access

Untangling Lifetimes: The Arena Allocator

Garbage Collection Handbook

Control Theory and Concurrent Garbage Collection https://speakerdeck.com/madhavjivrajani/control-theory-and-concurrent-garbage-collection-a-deep-dive-into-the-go-gc-pacer

automemcpy: A Framework for Automatic Generation of Fundamental Memory Operations

https://github.com/mflatt/gc-demo https://www.youtube.com/playlist?list=PLbdXd8eufjyVCrWF-obj8_BbyU5vEF8Jw

treadmill gabrage collector of baker http://www.cofault.com/2022/07/treadmill.html

garbage collection handbook lua wiki

real-time concurrent copying vs non-copying. Copying needs to adjust pointers. Can defragment incremental - does the garbage collection need to happen all at once

bump allocation

Conservative vs Exact

The boehm garbage collector seems easy to use. Also you can just malloc and never free. https://en.wikipedia.org/wiki/Boehm_garbage_collector

Parallel

Concurrent

mark and Sweep

colors mark finished, seen but children not finished. white is unseen. black is swept. When finished anything white is no longer in use.

Generational

Making a simple garbage collector https://maplant.com/gc.html