Crate Clippy/Fmt

Overview

A small utility to benchmark different approaches for building concurrent applications.

Pre-requisites

  1. cargo - https://www.rust-lang.org/tools/install
  2. python3.6+ with matplotlib

It generates three files in the ./figures directory:

where {name} is the --name (or -N) parameter value.

You may need to use --pythob/-p parameter to specify python3 binary, if it's not in /usr/local/bin/python3. E.g.

concurrency-demo-benchmarks --name async_30s \ --rate 1000 \ --num_req 100000 \ --latency "200*9,30000" \ --python /usr/bin/python3 \ async

Installation

cargo install concurrency-demo-benchmarks

Run batched/atomic/mutex increments benchmark

git clone https://github.com/xnuter/concurrency-demo-benchmarks.git cargo bench

Command line options

``` A tool to model sync vs async processing for a network service

USAGE: concurrency-demo-benchmarks [OPTIONS] --name --rate --num_req --latency [SUBCOMMAND]

FLAGS: -h, --help Prints help information -V, --version Prints version information

OPTIONS: -l, --latency Comma separated latency values. E.g. 200,200,200,500 -N, --name Name of the test-case -n, --numreq Number of requests. E.g. 1000 -p, --pythonpath Optional path to python3, e.g. /usr/bin/python3 -r, --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

Run async demo