sourcenav/benches/bench.rs

48 lines
1.2 KiB
Rust

use criterion::{criterion_group, criterion_main, Criterion};
use sourcenav::{get_quad_tree, read_areas};
use std::fs::read;
use std::hint::black_box;
use std::io::Cursor;
fn bench_badwater_areas(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
c.bench_function("badwater areas", |b| {
b.iter(|| {
let _ = black_box(read_areas(black_box(&mut Cursor::new(&file))));
})
});
}
fn bench_badwater_quads(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
c.bench_function("badwater areas", |b| {
b.iter(|| {
let _ = black_box(get_quad_tree(black_box(&mut Cursor::new(&file))));
})
});
}
fn bench_tree_query(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
let tree = get_quad_tree(&mut Cursor::new(&file)).unwrap();
c.bench_function("badwater areas", |b| {
b.iter(|| {
let _ = black_box(tree.find_best_height(
black_box(320.0),
black_box(-1030.0),
black_box(0.0),
));
})
});
}
criterion_group!(
benches,
bench_badwater_areas,
bench_badwater_quads,
bench_tree_query
);
criterion_main!(benches);