finish binrw rework

This commit is contained in:
Robin Appelman 2025-05-30 18:28:23 +02:00
commit 048a2e7dbe
7 changed files with 703 additions and 271 deletions

View file

@ -1,38 +1,39 @@
#![feature(test)]
extern crate test;
use bitbuffer::{BitReadBuffer, BitReadStream, LittleEndian};
use std::hint::black_box;
use criterion::{criterion_group, criterion_main, Criterion};
use sourcenav::{get_quad_tree, read_areas};
use std::fs::read;
use test::Bencher;
use std::io::Cursor;
#[bench]
fn bench_badwater_areas(b: &mut Bencher) {
fn bench_badwater_areas(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
let data = BitReadStream::new(BitReadBuffer::new(file, LittleEndian));
b.iter(|| {
let _ = test::black_box(read_areas(data.clone()));
})
c.bench_function("badwater areas", |b| {
b.iter(|| {
let _ = black_box(read_areas(black_box(&mut Cursor::new(&file))));
})
});
}
#[bench]
fn bench_badwater_quads(b: &mut Bencher) {
fn bench_badwater_quads(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
let data = BitReadStream::new(BitReadBuffer::new(file, LittleEndian));
b.iter(|| {
let _ = test::black_box(get_quad_tree(data.clone()));
})
c.bench_function("badwater areas", |b| {
b.iter(|| {
let _ = black_box(get_quad_tree(black_box(&mut Cursor::new(&file))));
})
});
}
#[bench]
fn bench_tree_query(b: &mut Bencher) {
fn bench_tree_query(c: &mut Criterion) {
let file = read("data/pl_badwater.nav").unwrap();
let tree = get_quad_tree(file).unwrap();
let tree = get_quad_tree(&mut Cursor::new(&file)).unwrap();
b.iter(|| {
test::black_box(tree.find_best_height(320.0, -1030.0, 0.0));
})
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);