concurrency-demo-benchmarks-0.0.1 is not a library.
Overview
A small utility to benchmark different approaches for building concurrent applications.
Pre-requisites
cargo
- https://www.rust-lang.org/tools/installpython3.6+
withmatplotlib
Run batched/atomic/mutex increments benchmark
cargo bench
Command line options
A tool to model sync vs async processing for a network service
USAGE:
concurrency-demo-benchmarks [OPTIONS] --name <NAME> --rate <RATE> --num_req <NUM_REQUESTS> --latency <LATENCY_DISTRIBUTION> [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-l, --latency <LATENCY_DISTRIBUTION> Comma separated latency values. E.g. 200,200,200,500
-N, --name <NAME> Name of the test-case
-n, --num_req <NUM_REQUESTS> Number of requests. E.g. 1000
-p, --python_path <PYTHON_PATH> Optional path to python3, e.g. /usr/bin/python3
-r, --rate <RATE> Request rate per second. E.g. 100 or 1000
SUBCOMMANDS:
async Model a service with Async I/O
help Prints this message or the help of the given subcommand(s)
sync Model a service with Blocking I/O
Run sync demo
- 1000 rps
- 200ms latency (stable)
- 500 threads
concurrency-demo-benchmarks -N sync_t500_200ms -r 100 -n 1000 -l 200 sync -t 500
- 1000 rps
- 600ms latency (stable)
- 500 threads
concurrency-demo-benchmarks -N sync_t500_600ms -r 100 -n 1000 -l 600 sync -t 500
- 1000 rps
- 200ms latency but 30s for 10%
- 500 threads
concurrency-demo-benchmarks -N sync_t500_30s -r 100 -n 1000 -l 200,200,200,200,200,200,200,200,200,30000 sync -t 500
Run async demo
- 1000 rps
- 200ms latency (stable)
concurrency-demo-benchmarks -N async_200ms -r 100 -n 1000 -l 200 async
- 1000 rps
- 600ms latency (stable)
concurrency-demo-benchmarks -N async_600ms -r 100 -n 1000 -l 600 async
- 1000 rps
- 200ms latency but 30s for 10%
concurrency-demo-benchmarks -N async_30s -r 100 -n 1000 -l 200,200,200,200,200,200,200,200,200,30000 async