Skipper is a C++17 header-only library with various implementations of skip list data structure.
- Examples can be found here.
- Drop headers from
include/skipperdirectory in your project or use CMake.
For measuring performance Google Benchmark library was used. Source code of benchmarks can be found here.
3 experiments with different setups (described below) have been conducted. Every benchmark ran on several number of threads (from 1 to 16). Performance was measured on Intel Core i7-8565U x86-64 with 8 hyper-threading cores with 1.8 CHz base frequency and 4.6 max turbo frequency. RAM is 32 GB DDR4.
This benchmark tests Contains() method. As a setup 10^6 random numbers from R = (-10^4; 10^4) are inserted.
Here Insert() method performance is measured. For setup 10^3 random numbers from R = (-10^3; 10^3) are inserted.
Here both methods are tested. 10^4 random numbers from R = (-10^4; 10^4) are inserted for a setup. During benchmarks itself one thread inserts random numbers from R the endless loop, while other threads are checking for contains random numbers from R.
Feel free to open an issue if something is wrong. For pull requests please follow these instructions.