Disable GC entirely

Dicebot m.strashun at gmail.com
Wed Apr 10 02:11:10 PDT 2013


On Wednesday, 10 April 2013 at 09:06:40 UTC, Manu wrote:
> Actally, now that I think about it though, I do something like 
> this a lot
> in games.
> I have a block of memory that only lasts the life of a single 
> frame, any
> transient allocations go in there, and they are never released, 
> the pointer
> is just reset and it overwrites the buffer each frame.
> Allocation is virtually instant: void* alloc(size_t bytes) { 
> offset +=
> bytes; return buffer[offset-bytes..offset]; }
> and releasing: offset = 0;
> This is a great realtime allocator! ;)
> I usually have separate allocation functions to do this, but in 
> D there is
> the problem that all the implicit allocations (array
> concatenation/strings/etc) can't have their alloc source 
> controlled :/

Well, avoid all implicit allocations and you can do something 
like that already right now. My initial comment was inspired by 
recent uprising of "scope" discussion - it fits the concept 
allowing such implementation to be not only fast but also 
type-safe.


More information about the Digitalmars-d mailing list