On Thursday, 14 August 2014 at 17:16:42 UTC, Philippe Sigaud
wrote:
From time to time, I try to speed up some array-heavy code by
using std.array.Appender, reserving some capacity and so on.
It never works. Never. It gives me executables that are maybe
30-50% slower than bog-standard array code.
I don't do anything fancy: I just replace the types, use
clear() instead of = null...
Do people here get good results from Appender? And if yes, how
are you using it?
I've never really tried to benchmark it, but it was my
understanding that the idea behind Appender was to use it to
create the array when you do that via a lot of appending, and
then you use it as a normal array and stop using Appender. It
sounds like you're trying to use it as a way to manage reusing
the array, and I have no idea how it works for that. But then
again, I've never actually benchmarked it for just creating
arrays via appending. I'd just assumed that it was faster than
just using ~=, because that's what it's supposedly for. But maybe
I just completely misunderstood what the point of Appender was.
- Jonathan M Davis