I implemented a trie data structure that has performed 20% faster lookups
than the dict implementation in R14B01. I have tested the code but it can
always benefit from more testing. The trie module provides the same
interface as the dict module, but requires a list of integers for the key.
Please tell me if you find issues in the code.
Code:
https://github.com/okeuday/CloudI/blob/master/src/lib/cloud_stdlib/src/trie.erl
Blog posts:
http://okeuday.livejournal.com/16454.html
http://okeuday.livejournal.com/16182.html (dict as the fastest general tree
data structure)
I know you can use ETS for similar problems, but avoiding shared data helps
utilize Erlang's scalability advantages.
Thanks,
Michael Truog
Do you have the benchmark and dataset available as well? I wrote a trie in
Erlang a few weeks ago and I'm just curious how it stacks up.
--
*.........01010...00..00...0100...00..00.
.........10..11...0100...11..00..101.01.
.111010..01100.....10....101110..01.101.
.........10..10....11....01..10..10..01.
.........00..00....00....00..00..00..00.
........................................*
Blog Post:
http://okeuday.livejournal.com/16707.html
The trie fetch performance is roughly 15% faster than a dict for 10000
entries, but might get better as the number of entries increases (though the
performance depends on the distribution of the key size, i.e., string
length).
Robert
________________________________________________________________
erlang-questions (at) erlang.org mailing list.
See http://www.erlang.org/faq.html
To unsubscribe; mailto:erlang-questio...@erlang.org
If performance is sufficiently important, it is good to have alternatives that
limit your options in exchange for speed.
BR,
Ulf W
Ulf Wiger, CTO, Erlang Solutions, Ltd.
http://erlang-solutions.com