Appender is ... slow

Messenger via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Aug 15 04:57:28 PDT 2014


On Friday, 15 August 2014 at 10:31:59 UTC, Dicebot wrote:
> On Friday, 15 August 2014 at 08:35:41 UTC, Philippe Sigaud via 
> Digitalmars-d-learn wrote:
>>> I wonder if using plain `Array` instead may be result in 
>>> better performance
>>> where immutability is not needed.
>>
>> Hmm, no:
>>
>> ...
>
> It is very different with better compiler though :
>
> $ ldmd2 -release -O a.d
> $ ./appendertest
> Appender.put       :378 ms, 794 μs, and 9 hnsecs
> Appender ~=        :378 ms, 416 μs, and 3 hnsecs
> Std array          :2 secs, 222 ms, 256 μs, and 2 hnsecs
> Std array.reserve  :2 secs, 199 ms, 64 μs, and 5 hnsecs
> Array              :349 ms and 250 μs
> Array.reserve      :347 ms, 694 μs, and 1 hnsec
> new T[]()          :37 ms, 989 μs, and 8 hnsecs
> uninitializedArray :39 ms, 333 μs, and 3 hnsecs
>
> (size 10_000)

T[size] beats all of those on dmd head, though it is inarguably a
bit limiting.


More information about the Digitalmars-d-learn mailing list