Best way to clear dynamic array for reuse

Lodovico Giaretta via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jul 13 05:05:18 PDT 2016


On Wednesday, 13 July 2016 at 11:59:18 UTC, Miguel L wrote:
> I am using a temporary dynamic array inside a loop this way:
> A[] a;
> for(....)
> {
> a=[]; //discard array contents
> ... appends thousand of elements to a
> ... use a for some calculations
> }
>
> I would like to know which would be the best way to clear a 
> contents avoiding reallocations, as there seems to be lots of 
> garbage collection cycles taking place.
>
> The options would be:
>
> a=[];
> a.length=0;
> a=null;
> ...
> any other?
>
> Can you help me please?

Use std.array.Appender. It allows faster appends, and has a handy 
.clear method that zeroes the length of the managed array, 
without de-allocating it, so the same buffer is reused.


More information about the Digitalmars-d-learn mailing list