Add manually-runnable benchmarks for runtime profiling (#2005)

* Split benches into two files

* Implement executor update bench

* Restructure benchmarks

* Unify usages of wrap network in scope

* Remove unused imports

* Fix oom bug

* Remove bounding box impl
This commit is contained in:
Dennis Kobert
2024-09-25 10:52:41 +02:00
committed by GitHub
parent c5454af48b
commit f8c7ada572
25 changed files with 378 additions and 270 deletions
@@ -0,0 +1,24 @@
use criterion::{criterion_group, criterion_main, Criterion};
use graph_craft::graphene_compiler::Executor;
use graphene_std::transform::Footprint;
mod benchmark_util;
use benchmark_util::{bench_for_each_demo, setup_network};
fn run_once(c: &mut Criterion) {
let mut group = c.benchmark_group("Run Once");
let footprint = Footprint::default();
bench_for_each_demo(&mut group, |name, g| {
g.bench_function(name, |b| {
b.iter_batched(
|| setup_network(name),
|(executor, _)| futures::executor::block_on((&executor).execute(criterion::black_box(footprint))),
criterion::BatchSize::SmallInput,
)
});
});
group.finish();
}
criterion_group!(benches, run_once);
criterion_main!(benches);