D hash table comparison benchmark
Seb
seb at wilzba.ch
Tue Jun 26 03:45:27 UTC 2018
On Tuesday, 26 June 2018 at 02:53:22 UTC, Nathan S. wrote:
> With LDC2 the times for vibe.utils.hashmap and memutils.hashmap
> are suspiciously low, leading me to suspect that the optimizer
> might be omitting most of the work. Here are the figures
> without optimizations enabled.
>
> == Speed Ranking using DMD (no optimizations) ==
> 95 msecs built-in AA
> 168 msecs vibe.utils.hashmap
> 182 msecs jive.map
> 224 msecs memutils.hashmap
> 663 msecs containers.hashmap w/GCAllocator
> 686 msecs containers.hashmap w/Mallocator
>
> == Speed Ranking using LDC2 (no optimizations) ==
> 68 msecs built-in AA
> 143 msecs vibe.utils.hashmap
> 155 msecs jive.map
> 164 msecs memutils.hashmap
> 515 msecs containers.hashmap w/GCAllocator
> 537 msecs containers.hashmap w/Mallocator
Did you by chance also benchmark it with other languages like
C++, Go or Rust?
BTW I'm not sure what your plans are, but are you aware of this
recent article?
https://probablydance.com/2018/05/28/a-new-fast-hash-table-in-response-to-googles-new-fast-hash-table
There were also plans to lower the AA implementation entirely
into D runtime/user space, s.t. specialization can be done
easier, but sadly these plans stagnated so far:
https://github.com/dlang/druntime/pull/1282
https://github.com/dlang/druntime/pull/1985
More information about the Digitalmars-d
mailing list