Reduce measurement overhead for run_once benchmark

This commit is contained in:
Dennis Kobert
2026-08-27 00:37:25 +02:00
parent ed457093b1
commit 694d3d34b3

View File

@@ -4,16 +4,18 @@ use benchmark_util::{bench_for_each_demo, setup_network};
use criterion::{Criterion, criterion_group, criterion_main};
use graph_craft::graphene_compiler::Executor;
use graphene_std::application_io::RenderConfig;
use interpreted_executor::dynamic_executor::DynamicExecutor;
fn run_once(c: &mut Criterion) {
let mut group = c.benchmark_group("Run Once");
let context = RenderConfig::default();
bench_for_each_demo(&mut group, |name, g| {
let (_, network) = setup_network(name);
g.bench_function(name, |b| {
b.iter_batched(
|| setup_network(name),
|(executor, _)| Executor::execute(&&executor, std::hint::black_box(context)).unwrap(),
criterion::BatchSize::SmallInput,
|| DynamicExecutor::new(network.clone()).unwrap(),
|executor| Executor::execute(&&executor, std::hint::black_box(context)).unwrap(),
criterion::BatchSize::LargeInput,
)
});
});