Skip to content

Fork of rust concurrent hash map bencmarks to include leapfrog map.

Notifications You must be signed in to change notification settings

robclu/conc-map-bench

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

conc-map-bench

conc-map-bench uses the bustle benchmarking harness. This is a port of the well regarded libcuckoo benchmark.

Implementations benchmarked

  • RwLock Std HashMap
  • CHashMap
  • Contrie
  • Flurry
  • DashMap
  • Evmap
  • Crossbeam Skiplist
  • LeapMap
> cargo tree | rg 'dashmap|chashmap|contrie|flurry|evmap|crossbeam-skiplist'
├── chashmap v2.2.2
├── contrie v0.1.4
├── crossbeam-skiplist v0.0.0 (https://github.com/crossbeam-rs/crossbeam#e1d64600)
├── dashmap v5.0.0
├── evmap v10.0.2
├── flurry v0.3.1

Workloads

Ready Heavy

A read heavy model with few inserts, removals and updates. Models caching of data in places such as webservers and disk page caches.

read   98%
insert  1%
remove  1%

Exchange

Insert and remove heavy model that replicates a scenario where the map is used to exchange data.

read    10%
insert  40%
remove  40%
update  10%

Rapid Grow

An insert heavy model that replicates load in a scenario where the map is used to gather large amounts of data under a short burst.

read    5%
insert 80%
remove  5%
update 10%

How to run it?

mv results results.bk
./scripts/bench.bash
./scripts/plot.bash

Results

OS: Ubuntu 20.4 CPU: AMD Threadripper 3950x

The CPU has 16 cores and 32 threads.

See the results/ directory.

Ready Heavy (fx hasher)

Exchange (fx hasher)

NOTE: the flurry case fails because of the OOM killer.

Rapid Grow (fx hasher)

Read Heavy (std hasher)

Exchange (std hasher)

NOTE: the flurry case fails because of the OOM killer.

Rapid Grow (std hasher)

About

Fork of rust concurrent hash map bencmarks to include leapfrog map.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 96.3%
  • Shell 3.7%