use criterion::{criterion_group, criterion_main, Criterion};
use sigma::Sigma;
const INPUT_1KB: &str = include_str!("./small_data_1kb.txt");
const INPUT_10KB: &str = include_str!("./small_data_10kb.txt");
const INPUT_50KB: &str = include_str!("./small_data_50kb.txt");
const INPUT_500KB: &str = include_str!("./small_data_500kb.txt");
const INPUT_1MB: &str = include_str!("./small_data_1mb.txt");
fn small_data_parse(c: &mut Criterion) {
let sigma_small_1kb = Sigma::new(INPUT_1KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
c.bench_function("small_data_1kb_parse", move |b| {
b.iter_with_setup(
|| sigma_small_1kb.clone(),
|sigma| sigma.parse().unwrap(),
);
});
let sigma_small_10kb = Sigma::new(INPUT_10KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
c.bench_function("small_data_10kb_parse", move |b| {
b.iter_with_setup(
|| sigma_small_10kb.clone(),
|sigma| sigma.parse().unwrap(),
);
});
let sigma_small_50kb = Sigma::new(INPUT_50KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
c.bench_function("small_data_50kb_parse", move |b| {
b.iter_with_setup(
|| sigma_small_50kb.clone(),
|sigma| sigma.parse().unwrap(),
);
});
let sigma_small_500kb = Sigma::new(INPUT_500KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
c.bench_function("small_data_500kb_parse", move |b| {
b.iter_with_setup(
|| sigma_small_500kb.clone(),
|sigma| sigma.parse().unwrap(),
);
});
let sigma_small_1mb = Sigma::new(INPUT_1MB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
c.bench_function("small_data_1mb_parse", move |b| {
b.iter_with_setup(
|| sigma_small_1mb.clone(),
|sigma| sigma.parse().unwrap(),
);
});
}
fn small_data_compile(c: &mut Criterion) {
let sigma_small_1kb = Sigma::new(INPUT_1KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
let sigma_small_1kb = sigma_small_1kb.parse().unwrap();
c.bench_function("small_data_1kb_compile", move |b| {
b.iter_with_setup(
|| sigma_small_1kb.clone(),
|sigma| sigma.compile().unwrap(),
);
});
let sigma_small_10kb = Sigma::new(INPUT_1KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
let sigma_small_10kb = sigma_small_10kb.parse().unwrap();
c.bench_function("small_data_10kb_compile", move |b| {
b.iter_with_setup(
|| sigma_small_10kb.clone(),
|sigma| sigma.compile().unwrap(),
);
});
let sigma_small_50kb = Sigma::new(INPUT_50KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
let sigma_small_50kb = sigma_small_50kb.parse().unwrap();
c.bench_function("small_data_50kb_compile", move |b| {
b.iter_with_setup(
|| sigma_small_50kb.clone(),
|sigma| sigma.compile().unwrap(),
);
});
let sigma_small_500kb = Sigma::new(INPUT_500KB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
let sigma_small_500kb = sigma_small_500kb.parse().unwrap();
c.bench_function("small_data_500kb_compile", move |b| {
b.iter_with_setup(
|| sigma_small_500kb.clone(),
|sigma| sigma.compile().unwrap(),
);
});
let sigma_small_1mb = Sigma::new(INPUT_1MB)
.bind("sigma_one", "sigma1")
.bind("sigma_two", "sigma2");
let sigma_small_1mb = sigma_small_1mb.parse().unwrap();
c.bench_function("small_data_1mb_compile", move |b| {
b.iter_with_setup(
|| sigma_small_1mb.clone(),
|sigma| sigma.compile().unwrap(),
);
});
}
criterion_group!(benches, small_data_parse, small_data_compile);
criterion_main!(benches);