?

Log in

No account? Create an account
Erlang Benchmark - Michael Truog — LiveJournal
okeuday
Erlang Benchmark
I now have a more thorough Erlang data structure benchmark for storing data with either integer keys or string (list of integers) keys. The results show that the new trie data structure is a good choice for the storage of data with string keys (i.e., obvious typical usage). The performance of ets can change with the amount of concurrent accesses, since ets uses global state (as shown below with the 10 concurrent ets reads). Example (non-HiPE) results are below:

Integer Key:
N ==    10000
array (fixed):    get:     5065 µs, set:     9076 µs
array (dynamic):  get:     5040 µs, set:     9209 µs
tuple:            get:      820 µs, set:   249976 µs
gb_trees:         get:     6825 µs, set:    68632 µs
rbdict:           get:     6251 µs, set:    20912 µs
aadict:           get:     6397 µs, set:    24892 µs
orddict:          get:  1646868 µs, set:     2261 µs
dict:             get:     4541 µs, set:    26161 µs
ets (set):        get:     3972 µs, set:     7718 µs
process dict:     get:     1092 µs, set:     2904 µs
ets x10 (set):    get:     1943 µs

String Key:
N ==    10000
gb_trees:         get:    24420 µs, set:    47523 µs
rbdict:           get:    22337 µs, set:    39466 µs
aadict:           get:    22217 µs, set:    46358 µs
orddict:          get:  2694740 µs, set:  2470911 µs
dict:             get:    18034 µs, set:    63578 µs
trie:             get:    14826 µs, set:    47240 µs
ets (set):        get:    17645 µs, set:    23810 µs
process dict:     get:    13390 µs, set:    26796 µs
ets x10 (set):    get:    21102 µs


The benchmark results are from Linux version 2.6.32-21, Ubuntu 10.04 with an Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz.
Leave a comment