On Fri 22 Nov 2013 10:09, Andy Wingo <wi...@pobox.com> writes: > It seems that the BDW GC, since version 7 or so, supports inline > allocation with thread-local freelists. See gc_inline.h. We can > probably improve our allocation speed significantly by using this > allocator in Guile. It would require adding a freelist to scm_i_thread, > and passing the thread around wherever we would want inline allocation, > but that is already the case in the VM. > > Could be a neat little project for someone -- mostly on master, where we > require BDW-GC 7.2.
Not sure if I mentioned this, but I did this on master. It's a minor speed boost, just a few percent -- mostly because we avoid TLS lookups to get the thread-local freelist within GC_malloc() and friends. If we passed the scm_i_thread* pointer to some new kind of gsubr, then primitives could also do this; future work. Andy -- http://wingolog.org/