Remix.run Logo
mbrock 4 days ago

You can wrack some people's brains by stating that for some problems, a GC is a great way to alleviate the performance problems caused by manual memory management.

jeltz 4 days ago | parent [-]

For those problems arena allocators tend to perform even better.

mbrock 4 days ago | parent | next [-]

Yeah, but if you actually need to retain a live subgraph of the allocated heap, the arena can't help you. So you make an arena allocator that only frees its slab after moving out the reachable set to a new compacted arena. Congratulations, you've implemented a Cheney-style compacting GC!

quotemstr 4 days ago | parent | prev [-]

Not for all allocation patterns. It's hard to beat bump pointer allocation and escape analysis in general.