mirror of
https://codeberg.org/icewind/sourcenav.git
synced 2026-06-03 10:14:11 +02:00
48 lines
1.2 KiB
Rust
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);
|