[Issue 13410] Performance problem with associative array byKey/byValue

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Sep 1 23:10:18 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=13410

--- Comment #11 from Ketmar Dark <ketmar at ketmar.no-ip.org> ---
(In reply to bearophile_hugs from comment #9)
> Right. (But using an unordered_map in the C++ code from the newsgroup the
> C++ code only gets a little more than twice slower, that seems about twice
> faster than the patched D code. I don't know the source of such performance
> difference.)
we can make D code alot faster if we'll add one pointer to each AA Entry, for
example. but i think that this is just a wasted memory.

i have some other ideas, but they requires either additional memory or more
support code in add/remove functions (thus making adding and removing elements
slower in general).

but i'm still thinking. maybe i'll do some more patches soon. or someone who
already knows the solution but don't bother to write it 'cause he never sees
use cases for that. ;-)

i'm still thinking about adding `aa.frontKey` and `aa.frontValue`, 'cause i
don't like the fact that using AA in foreach() turns on caching. but i believe
that adding new methods will zero merging chances. "we already have too many
methods and runtime hooks, there is no sense in adding two more,
blah-blah-blah".

--


More information about the Digitalmars-d-bugs mailing list