Dependencies:
- log4c
- opic robin hood hash
- sparse hash
- libcuckoo
- autoconf
- automake
- cityhash (required for libcuckoo).
autoreconf -vif
CFLAGS="-O3" CXXFLAGS="-O3" ./configure
make
± ./hash_bench -h
usage: ./hash_bench [-n power_of_2] [-r repeat] [-k keytype]
[-i impl] [-m mode] [-f file] [-p] [-h]
Options:
-n num Number of elements measured in power of 2.
-n 20 => run 2^20 = 1 million elements.
defaults to 20
-r repeat Repeat the benchmar for `repeat` times.
-k keytype keytype = short_string, mid_string, long_string or
long_int
short_string: 6 bytes, mid_string: 32 bytes,
long_string: 256 bytes, long_int: 8 bytes
For now only robin_hood hash supports long_int benchmark
-i impl impl = robin_hood, dense_hash_map, sparse_hash_map,
std_unordered_map, cuckoo, khash
-m mode mode = in_memory, serialize, deserialize, or de_no_cache
in_memory: benchmark hash map creation time and query time
supported impl: all
serialize: hash_map creation time and serialization time
supported impl: robin_hood, sparse_hash_map
std_unordered_map
deserialize: deserialize hash map then query for 2^n times
supported impl: robin_hood, sparse_hash_map
std_unordered_map
de_no_cache: measures bare deserialization performance
supported impl: robin_hood
-p pause Pause between insertion and query so that we have time to
capture the memory it use.
-f file file used in serialize, deserialize and deserialize_cached
mode.
-h print help.
- OPIC robin hood hash is released by Felix Chern, under LGPL v3.
- dense hash map and sparse hash map were release by google, Copyright (c) 2005, Google Inc. Under 3 clause BSD license.
- libcuckoo: Copyright (C) 2013, Carnegie Mellon University and Intel Corporation. Under apache license 2.0.
- klib/khash is distributed under MIT/X11 license.