This is a highly modified fork of the crossbeam-channel benchmarks. to keep track of Kanal library stats in comparison with other competitors.
seq: A single thread sendsNmessages. Then it receivesNmessages.spsc: One thread sendsNmessages. Another thread receivesNmessages.mpsc:Tthreads sendN / Tmessages each. One thread receivesNmessages.mpmc:Tthreads sendN / Tmessages each.Tother threads receiveN / Tmessages each.select_rx:Tthreads sendN / Tmessages each into a separate channel. Another thread receivesNmessages by selecting over theTchannels.select_both:Tthreads sendN / Tmessages each by selecting overTchannels.Tother threads receiveN / Tmessages each by selecting over theTchannels.
Default configuration:
N = 5000000T = 4
Runs benchmarks, stores results into *.csv files in the target folder, and generates multiple png file for each test category:
# Results will be saved in `target`.
./run.shDependencies:
- Rust (latest)
- Go
- Bash
- libcairo2-dev
- Python
- pygal
- cairosvg
- tk
- PIL
You can follow community benchmarks, and also share your results by opening an issue with the format shown in results section.
Machine: AMD Ryzen Threadripper 2950X 16-Core Processor
Rust: rustc rustc 1.64.0
Go: go version go1.19.2 linux/amd64
OS (uname -a): Linux 5.13.0-35-generic #40~20.04.1-Ubuntu SMP Mon Mar 7 09:18:32 UTC 2022 x86_64
Date: Oct 16, 2022
