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 don't know much about Phobos appender implementation details but the key thing with reusable buffer is avoid freeing them. AFAIR Appender.clear frees the allocated memory but `Appender.length = 0` does not, making it possible to just overwrite stuff again and again.

Won't promise you anything though!

Reply via email to