Antti-Ville Tuuainen Passes GSoC Final Evaluation

dsimcha dsimcha at yahoo.com
Thu Aug 23 05:51:50 PDT 2012


On Thursday, 23 August 2012 at 11:40:22 UTC, Rory McGuire wrote:
> On Thu, Aug 23, 2012 at 4:01 AM, Chad J
> <chadjoan at __spam.is.bad__gmail.com>wrote:
>
>>
>> Poolwise bitmap... what an interesting name.  I'll look 
>> forward to
>> learning about the concepts behind it!
>>
>
> +1

Basically, the idea is to store information about what is and 
isn't a pointer at the pool level instead of at the block level.  
My attempt from a long time ago at precise heap scanning, and 
Antti-Ville's first attempt, stored meta-data at the end of every 
allocated block.  This worked well for large arrays, but was 
terribly inefficient for smaller allocations and made the GC code 
even messier than it already is.  The overhead was a fixed 
(void*).sizeof bits per block.  Now, each pool has a bit array 
that contains one bit for every possible aligned pointer.  The 
overhead is always 1 bit for every (void*).sizeof bytes no matter 
how large or small the block is.


More information about the Digitalmars-d-announce mailing list