codingskynet / concurrent-data-structure

Concurrent Data Structure for Rust
29 stars 3 forks source link
concurrent datastructure rust

Concurrent Data Structure for Rust

Goal & Status

Implement sequential, lock-based and lock-free concurrent data structures below:

Stack Queue Linked List AVL Tree HashTable
Sequential Done Done Done Done
Lock-based Done Done Done
Lock-free Done Done

Benchmark

You can run bench like this:

cargo install cargo-criterion
# default feature has accumulating stats on available structure.
cargo criterion --bench {bench_name} --no-default-features

Available Benches:

Profile

Use CDS stats

Several cds has its own statistics. Use it by printing on test.

Flamegraph

cargo install flamegraph
sudo cargo flamegraph --no-default-features --test tests -- {test_name}

Detail

Lock

Stack

Queue

Linked List

AVL Tree

HashTable

Reference

General

Lock

Stack

Queue

Binary Search Tree