On Wednesday, 13 July 2016 at 12:37:26 UTC, Miguel L wrote:
I tried Appender, but for some reason garbage collector still seems to be running every few iterations. I will try to expand a little on my code because maybe there is something i am missing:

 Appender!(A[]) a;

 void foo( out Appender!(A[]) bar)
{
...
bar~= lot of elements
}

 for(....)
 {
 //a=[]; //discard array contents
 a.clear();
 foo(a) appends thousand of elements to a
 ... use a for some calculations
 }

Well, I think foo's parameter should be `ref Appender!(A[]) bar` instead of `out Appender!(A[]) bar`. Also, if you know you will append lots of elements, doing a.reserve(s), with s being an estimate of the number of appends you expect, might be a good idea.

Reply via email to