criterion-cycles-per-byte
CyclesPerByte
measures clock cycles using the x86 or x86_64 rdtsc
instruction.
//!
```rust
fn fibonaccislow(: usize) {}
fn fibonaccifast(: usize) {}
use criterion::{criteriongroup, criterionmain, BenchmarkId, Criterion};
use criterioncyclesperbyte::CyclesPerByte;
//!
fn bench(c: &mut Criterion) {
let mut group = c.benchmarkgroup("fibonacci");
//!
for i in 0..20 {
group.benchfunction(BenchmarkId::new("slow", i), |b| b.iter(|| fibonaccislow(i)));
group.benchfunction(BenchmarkId::new("fast", i), |b| b.iter(|| fibonaccifast(i)));
}
//!
group.finish()
}
//!
criteriongroup!(
name = mybench;
config = Criterion::default().withmeasurement(CyclesPerByte);
targets = bench
);
criterionmain!(my_bench);
```