Expand description
§Criterion Inverted Throughput
Custom criterion::measurement::Measurement to get throughputs in the format [time]/[elements or bytes].
§Description
With deafult criterion config, result of throughput measurement is printed like:
time: [2.8617 µs 2.8728 µs 2.8850 µs]
thrpt: [14.558 Melem/s 14.620 Melem/s 14.677 Melem/s]Throughput is got in the format [elements or bytes]/s.
It is fine as a throughput, but sometimes we want to get how much time is
cost per 1 element or byte.
Using this crate, we can got it in the format [time]/[element or byte] without post-processing calculations, like:
time: [2.8581 µs 2.8720 µs 2.8917 µs]
thrpt: [68.849 ns/elem 68.381 ns/elem 68.049 ns/elem]§Usage
Specify InvertedThroughput as your criterion measurement.
use criterion::{criterion_group, criterion_main, Criterion, Throughput, measurement::Measurement};
use criterion_inverted_throughput::InvertedThroughput;
fn bench_foo<M: Measurement>(c: &mut Criterion<M>) {
let mut g = c.benchmark_group("foo");
// tell size of input to enable throughput
g.throughput(Throughput::Elements(42u64));
// add benchmarks to the group here like
// g.bench_function("foo", |b| b.iter(|| do_something()));
g.finish();
}
criterion_group!(
name = Foo;
// specify `InvertedThroughput` as measurement
config = Criterion::default().with_measurement(InvertedThroughput::new());
targets = bench_foo
);
criterion_main!(Foo);Structs§
- Inverted
Throughput - The custom measurement printing inverted throughputs instead of the throughputs