mirror of
https://github.com/tweag/nickel.git
synced 2024-10-05 15:47:33 +03:00
71 lines
1.4 KiB
Rust
71 lines
1.4 KiB
Rust
use criterion::{criterion_group, criterion_main, Criterion};
|
|
use pprof::criterion::{Output, PProfProfiler};
|
|
use utilities::{bench, EvalMode};
|
|
|
|
fn fibonacci(c: &mut Criterion) {
|
|
bench(
|
|
"fibonacci 10",
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"numeric/fibonacci",
|
|
None,
|
|
10,
|
|
EvalMode::Normal,
|
|
c,
|
|
);
|
|
}
|
|
|
|
fn pidigits(c: &mut Criterion) {
|
|
bench(
|
|
"pidigits 100",
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"numeric/pidigits",
|
|
None,
|
|
100,
|
|
EvalMode::Normal,
|
|
c,
|
|
);
|
|
}
|
|
|
|
fn sum(c: &mut Criterion) {
|
|
bench(
|
|
"sum 30",
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"numeric/reduce",
|
|
Some("sum"),
|
|
30,
|
|
EvalMode::Normal,
|
|
c,
|
|
);
|
|
}
|
|
|
|
fn product(c: &mut Criterion) {
|
|
bench(
|
|
"product 30",
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"numeric/reduce",
|
|
Some("product"),
|
|
30,
|
|
EvalMode::Normal,
|
|
c,
|
|
);
|
|
}
|
|
|
|
fn scalar(c: &mut Criterion) {
|
|
bench(
|
|
"scalar 10",
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"numeric/scalar",
|
|
None,
|
|
10,
|
|
EvalMode::Normal,
|
|
c,
|
|
);
|
|
}
|
|
|
|
criterion_group! {
|
|
name = benches;
|
|
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
|
|
targets = fibonacci, pidigits, sum, product, scalar
|
|
}
|
|
criterion_main!(benches);
|