Appender is ... slow
monarch_dodra via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Aug 15 15:19:44 PDT 2014
On Friday, 15 August 2014 at 21:24:25 UTC, Jonathan M Davis wrote:
> On Friday, 15 August 2014 at 16:48:10 UTC, monarch_dodra wrote:
>> If you are using "raw GC arrays", then the "raw" append
>> operation will, outweigh the relocation cost on extension. So
>> pre-allocation wouldn't really help in this situation (though
>> the use of Appender *should*)
>
> Is that because it's able to grab memory from the GC without
> actually having to allocate anything? Normally, I would have
> expected allocations to far outweigh the cost on extension and
> that preallocating would help a lot. But that would be with
> malloc or C++'s new rather than the GC, which has already
> allocated memory to reuse after it collects garbage.
>
> - Jonathan M Davis
It's mostly just because GC-array appending is slow. A single
operation is itself not that slow, but if you plan to append
10_000 elements, then the total cost will add up. A lot.
More information about the Digitalmars-d-learn
mailing list