[D-runtime] Extending pages in GC

Fawzi Mohamed fawzi at gmx.ch
Wed Jul 14 05:57:29 PDT 2010


On 14-lug-10, at 14:34, Steve Schveighoffer wrote:

> Hm... did you mean to reply to the newCapacity message?
>
> Even if that is the case, I don't really understand what you are  
> saying here...
>
> -Steve
>
Sorry, I had written a first reply to the newCapacity message, and it  
seems that that first reply for unknown reasons did not go through to  
the list... so my second reply was indeed without context...

as It was not really correct, I just put here an excerpt for  
completeness sake
------
Again I am not too sure, I flip flopped a couple of times implementing http://github.com/fawzi/blip/blob/master/blip/util/Grow.d 
  , a version of which I had also used in tango.

basically if you append to an array do you want the appending be  
determined by the number of elements of the array, or its size?
Code will probably work depending on the number of elements of the  
array, not on its memory usage.
In the end it is just a factor, but if you have many small elements I  
feel that it if "reasonable" to allocate a smaller amount of extra  
space.
On the other hand as you pointed out if you thing strictly from the  
memory point of view, one can argue that the percentile of extra space  
should depend only on the space used, not on how it is used internally.

Finally I kept the "per element" view, but that was done without any  
real testing
>


(in reality I grow strictly on memory and the use the element size to  
round up, guaranteeing nice behavior for arrays with few large  
elements).
--------

about the sub page grows I am not sure if I agree, choosing those  
special sizes matches the sizes of the bins in the GC, so it makes  
sense to have special sizes
>
>
> ----- Original Message ----
>> From: Fawzi Mohamed <fawzi at gmx.ch>
>> To: D's runtime library developers list <d-runtime at puremagic.com>
>> Sent: Wed, July 14, 2010 8:20:46 AM
>> Subject: Re: [D-runtime] Extending pages in GC
>>
>> ehm, it seems that it was too long ago that I worked on that code.
>> Indeed I  flip-flopped one more time it seem, and I also decided to  
>> grow only
>> based on  memory usage.
>> The element size is used just to round the result to a multiple  of  
>> the element
>> size...
>> (this can have a large impact with arrays with few  large elements,  
>> I think it
>> is  correct)
>>
>> Fawzi
>> _______________________________________________
>> D-runtime  mailing list
>> D-runtime at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/d-runtime
>>
>
>
>
> _______________________________________________
> D-runtime mailing list
> D-runtime at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/d-runtime

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/d-runtime/attachments/20100714/43b00844/attachment.html>


More information about the D-runtime mailing list