HFTrader/hash-table-shootout

A benchmark of some prominent C/C++ hash table implementations

★ 4Forks 1Jupyter NotebookGitHub ↗Compare

README

How to run these benchmarks:

First, some prerequisites are:

make
modern C and C++ compilers (gcc, clang or similar)
boost
google sparsehash
qt
libjudy
libkyotocabinet
libleveldb
librocksdb
libpython3

Ubuntu focal 20.04 LTS: 
sudo apt install -y build-essential libpython3-all-dev pkg-config libboost-dev libsparsehash-dev \
     qt5-default libjudy-dev libglib2.0-dev libleveldb-dev librocksdb-dev libkyotocabinet-dev \
     linux-tools-common linux-tools-generic linux-tools-aws libtcmalloc-minimal4  
sudo ln -s /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4 /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so

as root: 
echo 0 > /proc/sys/kernel/perf_event_paranoid
apt install linux-tools-`uname -r`

Now, run:

$ git submodule update --init --recursive
$ emacs apps.txt # select assotiative arrays you are interested in
$ export PYTHON3_PC=<what_you_need> # if necessary
$ make
$ ./bench.py
$ ./make_chart_data.py < output | ./make_html.py

Your charts are now in charts.html.

Copyright Information

Written by Nick Welch in 2010.
Forked by Tessil in 2016.
Forked by Aleksey Cheusov in 2020.
Forked by Henrique Bucher in 2021.
No copyright.  This work is dedicated to the public domain.
For full details, see http://creativecommons.org/publicdomain/zero/1.0/

Contributors

cheusovTessilHFTradermackstannagutikov

Issues