Mitchell N Charity wrote:

The attached patch adds a scheme where:
 - gc flags are in the pool, and
 - pmc->pool mapping is done with aligned pools and pmc pointer masking.

Thanks for that.


Observations:
 - It's fast.  (The _test_ is anyway.)  Perhaps 4x random, 10x+ linear.

I see ~8x/~12x with pmc->pool calculation on my Athlon with -O3.


 - PMC size doesn't matter here, because we never actually touch them.

Yep, for marking. Putting the PMC on the free_list then would still be cheaper for smaller PMCs I think.


Mitchell
(I assume at some point Dan will say "ok, we've demonstrated the
 minimally required gc performace... so now let's get back to actually
 writing the thing...".  That will quiet my currently fluttering
 premature optimization warning flags. ;)
I think, we should have some schemes in parallel. I have here my "small PMC" patch (though w/o morphing or such), separated flags shouldn't be too hard due to the flag accessor macros.

Do we already have a general purpose memalign() function and a config test for it - or better, was there some in past?

leo

Reply via email to