"Vladimir Panteleev" wrote in message news:remgknxogqlfwfnsu...@forum.dlang.org...

Recording the information necessary to free memory costs performance (and more memory) itself. With a basic bump-the-pointer scheme, you don't need to worry about page sizes or free lists or heap fragmentation - all allocated data is contiguous, there is no metadata, and you can't back out of that.

It's possible that we could use a hybrid approach, where a GB or so is allocated from the GC in one chunk, then filled up using a bump-pointer allocator. When that's exhausted, the GC can start being used as normal for the rest of the compilation. The big chunk will obviously never be freed, but the GC still has a good chance to keep memory usage under control. (on 64-bit at least)

Reply via email to