use divan::Bencher;
use osproxy_engine::bench_support::{buffered, response, streaming};
fn main() {
divan::main();
}
fn run(bencher: Bencher, n_hits: usize, agg_bytes: usize, transform: fn(&[u8]) -> Vec<u8>) {
let body = response(n_hits, agg_bytes);
bencher.bench_local(|| transform(divan::black_box(&body)));
}
#[divan::bench]
fn agg_heavy_buffered(b: Bencher) {
run(b, 100, 4 << 20, buffered);
}
#[divan::bench]
fn agg_heavy_streaming(b: Bencher) {
run(b, 100, 4 << 20, streaming);
}
#[divan::bench]
fn mixed_buffered(b: Bencher) {
run(b, 10_000, 256 << 10, buffered);
}
#[divan::bench]
fn mixed_streaming(b: Bencher) {
run(b, 10_000, 256 << 10, streaming);
}
#[divan::bench]
fn hits_heavy_buffered(b: Bencher) {
run(b, 50_000, 0, buffered);
}
#[divan::bench]
fn hits_heavy_streaming(b: Bencher) {
run(b, 50_000, 0, streaming);
}