[phobos] newCapacity function in array appending
Walter Bright
walter at digitalmars.com
Tue Jul 13 13:18:50 PDT 2010
Steve Schveighoffer wrote:
> There is a couple issues with the growth rate of arrays in the array append
> function.
>
> First, the newCapacity function is only called when the array must be
> reallocated. I believe this to be an error, I think the newCapacity function
> should always be used, even if pages can be added. This would use less cycles
> searching for pages to append.
>
> Second, the newCapacity function seems to use the size of the element to
> determine a percentage growth. I feel this is an error. I think the growth
> factor should strictly be related to the amount of memory being requested, which
> already takes into account the size of the element.
>
> At present, this means that arrays of ints grow 4x as fast as arrays of bytes.
> And that's 4x in percentage terms, not in 4x the memory used. The memory used
> actually grows 16x faster.
>
> Does everyone agree with this?
>
> The relevant bug for this is http://d.puremagic.com/issues/show_bug.cgi?id=4412
>
>
Empirically, memory usage seems to be self-similar, which means a
percentage increase in size is more likely to be correct than a fixed
increment.
More information about the phobos
mailing list