Julia GC, heap fragmentation, out of memory, push!/append!

I’m not sure it was worth reviving the thread.

An arena allocation scheme partly addresses the original issue.

As for distinct allocators, I’m not sure if that is a particular issue as long as you don’t try to free something you did not allocate.

For example, I played with integrating alternative allocators in ArrayAllocators.jl:

The basic idea was to use unsafe_wrap with own = false to tell Julia not to free that memory by itself.

The one problem with this is I was not able to tell the Julia GC how much memory I had allocated outside of it, while still having to rely on finalization to cleanup.