On Tuesday, 6 December 2016 at 15:29:59 UTC, Jonathan M Davis wrote:
On Tuesday, December 06, 2016 13:19:22 Anonymouse via Digitalmars-d-learn wrote:
On Tuesday, 6 December 2016 at 10:52:44 UTC, thedeemon wrote:

[...]

> 2. Up until 4 KB it reallocates when growing, but after 4 KB > the array lives in a larger pool of memory where it can > often grow a lot without reallocating, so in many scenarios > where other allocations do not interfere, the data array of > appender grows in place without copying any data, thanks to > GC.extend() method.

I always assumed it kept its own manually allocated array on a malloc heap :O

No. The main thing that Appender does is reduce the number of checks required for whether there's room for the array to append in place, because that check is a good chunk of why ~= is expensive for arrays.
[...]

Thanks everyone for the explanations. I should probably look into my data and see how often I'm reaching the 4kb size triggering GC.extend() use.

--Jon

Reply via email to