Skip to content

Instantly share code, notes, and snippets.

@josevalim

josevalim/bench Secret

Last active December 11, 2015 12:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save josevalim/436a9d2bca5051a6dfab to your computer and use it in GitHub Desktop.
Save josevalim/436a9d2bca5051a6dfab to your computer and use it in GitHub Desktop.
HashDict latest benchmark results
TEST binary_key
N == 1 (10 runs)
dict get: 1.5 us ( 1.9), set: 4.6 us ( 5.7)
elixir get: 1.2 us ( 1.5), set: 1.6 us ( 2.0)
gb_trees get: 0.9 us ( 1.1), set: 2.8 us ( 3.5)
orddict get: 0.8 us ( 1.0), set: 0.8 us ( 1.0)
N == 4 (10 runs)
dict get: 2.8 us ( 2.8), set: 9.4 us ( 5.5)
elixir get: 1.9 us ( 1.9), set: 3.2 us ( 1.9)
gb_trees get: 1.5 us ( 1.5), set: 6.8 us ( 4.0)
orddict get: 1.0 us ( 1.0), set: 1.7 us ( 1.0)
N == 8 (10 runs)
dict get: 3.6 us ( 1.4), set: 13.0 us ( 3.9)
elixir get: 2.9 us ( 1.2), set: 6.2 us ( 1.9)
gb_trees get: 2.6 us ( 1.0), set: 9.7 us ( 2.9)
orddict get: 2.5 us ( 1.0), set: 3.3 us ( 1.0)
N == 10 (10 runs)
dict get: 4.3 us ( 1.4), set: 12.3 us ( 2.9)
elixir get: 3.7 us ( 1.2), set: 12.8 us ( 3.0)
gb_trees get: 3.0 us ( 1.0), set: 11.5 us ( 2.7)
orddict get: 3.1 us ( 1.0), set: 4.3 us ( 1.0)
N == 12 (10 runs)
dict get: 5.0 us ( 1.4), set: 13.9 us ( 2.6)
elixir get: 4.2 us ( 1.1), set: 13.6 us ( 2.5)
gb_trees get: 3.7 us ( 1.0), set: 13.5 us ( 2.5)
orddict get: 4.2 us ( 1.1), set: 5.4 us ( 1.0)
N == 16 (10 runs)
dict get: 6.1 us ( 1.2), set: 17.6 us ( 1.9)
elixir get: 5.3 us ( 1.0), set: 15.9 us ( 1.7)
gb_trees get: 5.2 us ( 1.0), set: 17.5 us ( 1.9)
orddict get: 6.6 us ( 1.3), set: 9.1 us ( 1.0)
N == 20 (10 runs)
dict get: 7.6 us ( 1.2), set: 21.1 us ( 1.9)
elixir get: 6.2 us ( 1.0), set: 19.2 us ( 1.7)
gb_trees get: 6.5 us ( 1.0), set: 23.0 us ( 2.0)
orddict get: 9.9 us ( 1.6), set: 11.4 us ( 1.0)
N == 100 (10 runs)
dict get: 39.4 us ( 1.4), set: 102.1 us ( 1.2)
elixir get: 28.6 us ( 1.0), set: 83.2 us ( 1.0)
gb_trees get: 43.0 us ( 1.5), set: 141.2 us ( 1.7)
orddict get: 192.3 us ( 6.7), set: 205.3 us ( 2.5)
N == 1000 (10 runs)
dict get: 389.7 us ( 1.2), set: 1503.4 us ( 1.6)
elixir get: 315.3 us ( 1.0), set: 944.5 us ( 1.0)
gb_trees get: 672.2 us ( 2.1), set: 2055.9 us ( 2.2)
orddict get: 18629.5 us ( 59.1), set: 19831.3 us ( 21.0)
N == 10000 (10 runs)
dict get: 4361.2 us ( 1.0), set: 23159.0 us ( 2.0)
elixir get: 4286.5 us ( 1.0), set: 11755.3 us ( 1.0)
gb_trees get: 10566.5 us ( 2.5), set: 30018.5 us ( 2.6)
N == 100000 (10 runs)
dict get: 77752.1 us ( 1.2), set: 393547.8 us ( 2.1)
elixir get: 65778.6 us ( 1.0), set: 183741.6 us ( 1.0)
gb_trees get: 154507.0 us ( 2.3), set: 431970.7 us ( 2.4)
TEST integer_key
N == 1 (10 runs)
dict get: 0.9 us ( 2.3), set: 1.5 us ( 5.0)
elixir get: 0.7 us ( 1.7), set: 0.7 us ( 2.3)
gb_trees get: 0.4 us ( 1.0), set: 0.8 us ( 2.7)
orddict get: 0.4 us ( 1.0), set: 0.3 us ( 1.0)
N == 4 (10 runs)
dict get: 2.1 us ( 2.3), set: 3.9 us ( 3.0)
elixir get: 1.0 us ( 1.1), set: 2.0 us ( 1.5)
gb_trees get: 1.0 us ( 1.1), set: 2.7 us ( 2.1)
orddict get: 0.9 us ( 1.0), set: 1.3 us ( 1.0)
N == 8 (10 runs)
dict get: 3.2 us ( 1.7), set: 6.3 us ( 2.9)
elixir get: 1.9 us ( 1.0), set: 4.5 us ( 2.0)
gb_trees get: 1.9 us ( 1.0), set: 5.0 us ( 2.3)
orddict get: 2.0 us ( 1.1), set: 2.2 us ( 1.0)
N == 10 (10 runs)
dict get: 3.9 us ( 1.5), set: 7.7 us ( 2.7)
elixir get: 2.6 us ( 1.0), set: 8.1 us ( 2.8)
gb_trees get: 2.6 us ( 1.0), set: 6.3 us ( 2.2)
orddict get: 2.6 us ( 1.0), set: 2.9 us ( 1.0)
N == 12 (10 runs)
dict get: 4.3 us ( 1.5), set: 8.9 us ( 2.5)
elixir get: 3.0 us ( 1.0), set: 8.8 us ( 2.5)
gb_trees get: 2.9 us ( 1.0), set: 8.6 us ( 2.5)
orddict get: 3.2 us ( 1.1), set: 3.5 us ( 1.0)
N == 16 (10 runs)
dict get: 6.9 us ( 1.9), set: 11.4 us ( 2.2)
elixir get: 3.6 us ( 1.0), set: 21.0 us ( 4.0)
gb_trees get: 3.9 us ( 1.1), set: 10.9 us ( 2.1)
orddict get: 4.9 us ( 1.4), set: 5.3 us ( 1.0)
N == 20 (10 runs)
dict get: 7.0 us ( 1.6), set: 14.5 us ( 1.8)
elixir get: 4.4 us ( 1.0), set: 13.2 us ( 1.6)
gb_trees get: 5.1 us ( 1.2), set: 16.2 us ( 2.0)
orddict get: 7.1 us ( 1.6), set: 8.2 us ( 1.0)
N == 100 (10 runs)
dict get: 38.2 us ( 1.6), set: 85.2 us ( 1.2)
elixir get: 24.3 us ( 1.0), set: 71.9 us ( 1.0)
gb_trees get: 30.6 us ( 1.3), set: 102.0 us ( 1.4)
orddict get: 134.5 us ( 5.5), set: 143.7 us ( 2.0)
N == 1000 (10 runs)
dict get: 364.9 us ( 1.3), set: 1257.4 us ( 1.5)
elixir get: 278.1 us ( 1.0), set: 828.6 us ( 1.0)
gb_trees get: 446.7 us ( 1.6), set: 1478.4 us ( 1.8)
orddict get: 13055.2 us ( 46.9), set: 13177.4 us ( 15.9)
N == 10000 (10 runs)
dict get: 3784.2 us ( 1.1), set: 17925.5 us ( 1.8)
elixir get: 3365.0 us ( 1.0), set: 10091.9 us ( 1.0)
gb_trees get: 6405.4 us ( 1.9), set: 21606.8 us ( 2.1)
N == 100000 (10 runs)
dict get: 59457.1 us ( 1.1), set: 408854.4 us ( 2.4)
elixir get: 56136.1 us ( 1.0), set: 171461.4 us ( 1.0)
gb_trees get: 95527.4 us ( 1.7), set: 342576.9 us ( 2.0)
TEST list_key
N == 1 (10 runs)
dict get: 1.6 us ( 2.7), set: 6.5 us ( 10.8)
elixir get: 1.3 us ( 2.2), set: 1.6 us ( 2.7)
gb_trees get: 0.9 us ( 1.5), set: 2.9 us ( 4.8)
orddict get: 0.6 us ( 1.0), set: 0.6 us ( 1.0)
N == 4 (10 runs)
dict get: 2.7 us ( 2.1), set: 12.1 us ( 8.1)
elixir get: 1.9 us ( 1.5), set: 3.1 us ( 2.1)
gb_trees get: 1.5 us ( 1.2), set: 6.2 us ( 4.1)
orddict get: 1.3 us ( 1.0), set: 1.5 us ( 1.0)
N == 8 (10 runs)
dict get: 4.2 us ( 1.8), set: 19.3 us ( 6.4)
elixir get: 2.7 us ( 1.2), set: 5.4 us ( 1.8)
gb_trees get: 2.3 us ( 1.0), set: 9.3 us ( 3.1)
orddict get: 2.3 us ( 1.0), set: 3.0 us ( 1.0)
N == 10 (10 runs)
dict get: 5.4 us ( 1.9), set: 23.3 us ( 5.5)
elixir get: 4.0 us ( 1.4), set: 13.1 us ( 3.1)
gb_trees get: 3.1 us ( 1.1), set: 12.7 us ( 3.0)
orddict get: 2.9 us ( 1.0), set: 4.2 us ( 1.0)
N == 12 (10 runs)
dict get: 6.2 us ( 1.8), set: 27.5 us ( 6.1)
elixir get: 4.9 us ( 1.4), set: 15.1 us ( 3.4)
gb_trees get: 3.4 us ( 1.0), set: 14.4 us ( 3.2)
orddict get: 3.8 us ( 1.1), set: 4.5 us ( 1.0)
N == 16 (10 runs)
dict get: 7.3 us ( 1.7), set: 32.2 us ( 4.5)
elixir get: 5.9 us ( 1.3), set: 16.5 us ( 2.3)
gb_trees get: 4.4 us ( 1.0), set: 19.3 us ( 2.7)
orddict get: 5.9 us ( 1.3), set: 7.1 us ( 1.0)
N == 20 (10 runs)
dict get: 8.9 us ( 1.5), set: 38.7 us ( 3.7)
elixir get: 7.0 us ( 1.2), set: 19.0 us ( 1.8)
gb_trees get: 5.9 us ( 1.0), set: 21.9 us ( 2.1)
orddict get: 8.5 us ( 1.4), set: 10.6 us ( 1.0)
N == 100 (10 runs)
dict get: 49.6 us ( 1.3), set: 176.8 us ( 1.7)
elixir get: 38.3 us ( 1.0), set: 102.5 us ( 1.0)
gb_trees get: 38.1 us ( 1.0), set: 146.3 us ( 1.4)
orddict get: 164.6 us ( 4.3), set: 184.9 us ( 1.8)
N == 1000 (10 runs)
dict get: 571.9 us ( 1.1), set: 2322.3 us ( 2.0)
elixir get: 512.0 us ( 1.0), set: 1181.7 us ( 1.0)
gb_trees get: 648.1 us ( 1.3), set: 2094.3 us ( 1.8)
orddict get: 17115.9 us ( 33.4), set: 17873.1 us ( 15.1)
N == 10000 (10 runs)
dict get: 11884.7 us ( 1.1), set: 37388.2 us ( 1.8)
elixir get: 11244.7 us ( 1.0), set: 20307.2 us ( 1.0)
gb_trees get: 15508.9 us ( 1.4), set: 34197.9 us ( 1.7)
N == 100000 (10 runs)
dict get: 146702.6 us ( 1.2), set: 537625.6 us ( 2.0)
elixir get: 127289.5 us ( 1.0), set: 264893.0 us ( 1.0)
gb_trees get: 311232.4 us ( 2.4), set: 554166.6 us ( 2.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment