Skip to content

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).

License

Notifications You must be signed in to change notification settings

V0ldek/criterion-decimal-throughput

Repository files navigation

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

DEPRECATION

This crate is now obsolete as Criterion added this functionality in v0.4.0 as Throughput::BytesDecimal. Please migrate your Criterion version.


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.

About

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).

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages