#measurement #benchmarking #criterion #throughput #criterion-rs

criterion-decimal-throughput

Criterion.rs measurement for decimal throughput (MB/s, GB/s, etc.)

3 stable releases

1.0.2 Aug 29, 2022
1.0.0 Jul 23, 2022

#267 in Profiling

MIT license

24KB
220 lines

criterion-decimal-throughput – KB/s, MB/s, GB/s in Criterion.rs outputs

Rust docs.rs

Crates.io GitHub Release Date GitHub last commit

Crates.io

Custom measurement format for Criterion.rs that displays throughput in decimal byte-multiples (KB/s, MB/s, GB/s) instead of binary (KiB/s, MiB/s, GiB/s).

Features

Under default Criterion.rs measurements, the output of a benchmark with throughput configured will look like this:

Throughput in binary (GiB/s)

meaning '1.5050 * 2^(30)' which is fine, I guess, but I'm not good enough at on-the-fly calculations to see at a glance that this is, in fact, a mean of around 1.6 billion bytes. With this crate we get:

Throughput in decimal (GB/s)

which is a much nicer '1.5787e9'. It is quite subjective to prefer one over the other, but Criterion.rs forces you into binary. If you share my preference, this crate allows you to get nicer numbers.

Usage

Simply use the provided decimal_byte_measurement function for default configuration, or set the DecimalByteMeasurement type as measurement manually. See the example on docs.rs.

Installation

Add criterion-decimal-throughput as your dev-dependency, either with cargo:

cargo add --dev criterion-decimal-throughput

Alternatively, add it directly to the dev-dependencies section of your Cargo.toml:

[dev-dependencies]
criterion-decimal-throughput = "1.0.0"

Build & test

Simply use cargo:

cargo build
cargo test

Contributing

See Contribution Guide.

Dependencies

~8–12MB
~209K SLoC