Timothy J. Warren
3624b415ee
All checks were successful
timw4mail/rusty-numbers/pipeline/head This commit looks good
34 lines
1.2 KiB
Rust
34 lines
1.2 KiB
Rust
use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion};
|
|
use rusty_numbers::{factorial, fibonacci, mem_fibonacci, mem_factorial};
|
|
|
|
fn bench_factorial(c: &mut Criterion) {
|
|
let mut group = c.benchmark_group("Factorials");
|
|
|
|
for i in [0usize, 5, 10, 15, 20, 25, 30, 34].iter() {
|
|
group.bench_with_input(BenchmarkId::new("Recursive memoized", i), i, |b, i| {
|
|
b.iter(|| mem_factorial(*i))
|
|
});
|
|
group.bench_with_input(BenchmarkId::new("Recursive naive", i), i, |b, i| {
|
|
b.iter(|| factorial(*i))
|
|
});
|
|
}
|
|
group.finish();
|
|
}
|
|
|
|
fn bench_fibonacci(c: &mut Criterion) {
|
|
let mut group = c.benchmark_group("Fibonacci");
|
|
|
|
for i in [0usize, 5, 10, 15, 20, 30].iter() {
|
|
group.bench_with_input(BenchmarkId::new("Recursive memoized", i), i, |b, i| {
|
|
b.iter(|| mem_fibonacci(*i))
|
|
});
|
|
// group.bench_with_input(BenchmarkId::new("Recursive naive", i), i, |b, i| b.iter(|| rec_fibonacci(*i)));
|
|
group.bench_with_input(BenchmarkId::new("Iterative", i), i, |b, i| {
|
|
b.iter(|| fibonacci(*i))
|
|
});
|
|
}
|
|
}
|
|
|
|
criterion_group!(benches, bench_factorial, bench_fibonacci);
|
|
criterion_main!(benches);
|