use criterion::{Criterion, criterion_group, criterion_main}; use pumpkin_data::noise_router::OVERWORLD_BASE_NOISE_ROUTER; use pumpkin_world::generation::{ GlobalRandomConfig, noise::router::{ chunk_density_function::ChunkNoiseFunctionBuilderOptions, chunk_noise_router::ChunkNoiseRouter, proto_noise_router::ProtoNoiseRouters, }, }; use std::hint::black_box; fn bench_noise_router_creation(c: &mut Criterion) { let base_routers = &OVERWORLD_BASE_NOISE_ROUTER; let random_config = GlobalRandomConfig::new(0, false); let proto_routers = ProtoNoiseRouters::generate(base_routers, &random_config); let proto_noise_router = proto_routers.noise; let builder_options = ChunkNoiseFunctionBuilderOptions::new(4, 8, 4, 4, 0, 0, 3, vec![], vec![], None); // Benchmarking c.bench_function("noise_router_creation_with_pooling", |b| { b.iter(|| { let router = ChunkNoiseRouter::generate( black_box(&proto_noise_router), black_box(&builder_options), ); black_box(router); }); }); } criterion_group!(benches, bench_noise_router_creation); criterion_main!(benches);