[phobos] Atomic Small Memory Allocations

David Simcha dsimcha at gmail.com
Wed Mar 2 10:00:10 PST 2011


I just realized that it would probably be very easy to make the most common
codepath for small (<2048 byte) memory allocations in the GC lock free using
core.atomic.  This case basically works by just popping a block off a free
list.  This can be safely done truly in parallel with allocations of
different sizes, which are either hitting the large allocation code or a
different free list.

Has this ever been considered and rejected before?  It seems obvious enough
in hindsight that I'm wondering why it's not already done, but then again
I've been mucking around enough with the GC code lately that lots of ideas
seem obvious to me that would be non-trivial to someone who hasn't worked
with the code so much, so recently.  If it hasn't been seriously considered
before, is there any non-obvious reason why it might be a bad idea?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110302/a862ac8a/attachment.html>


More information about the phobos mailing list