From 289e16b2676a5c70043f8afbbbed848a2e00f60d Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Wed, 15 Jul 2026 04:09:41 -0700 Subject: [PATCH] Exclude teardown metrics from executors in the gungraun benchmark functions --- .../interpreted-executor/benches/run_cached_gungraun.rs | 5 ++++- node-graph/interpreted-executor/benches/run_once_gungraun.rs | 5 ++++- .../interpreted-executor/benches/update_executor_gungraun.rs | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/node-graph/interpreted-executor/benches/run_cached_gungraun.rs b/node-graph/interpreted-executor/benches/run_cached_gungraun.rs index 4e004c726f..2222b37d96 100644 --- a/node-graph/interpreted-executor/benches/run_cached_gungraun.rs +++ b/node-graph/interpreted-executor/benches/run_cached_gungraun.rs @@ -18,9 +18,12 @@ fn setup_run_cached(name: &str) -> DynamicExecutor { #[library_benchmark] #[benches::with_setup(args = ["isometric-fountain", "painted-dreams", "parametric-dunescape", "red-dress", "valley-of-spires"], setup = setup_run_cached)] -pub fn run_cached(executor: DynamicExecutor) { +pub fn run_cached(executor: DynamicExecutor) -> DynamicExecutor { let context = RenderConfig::default(); black_box(futures::executor::block_on(executor.tree().eval_tagged_value(executor.output(), black_box(context))).unwrap()); + + // Return the executor so its teardown happens outside the measured section + executor } library_benchmark_group!(name = run_cached_group; benchmarks = run_cached); diff --git a/node-graph/interpreted-executor/benches/run_once_gungraun.rs b/node-graph/interpreted-executor/benches/run_once_gungraun.rs index 399a852d6f..a46f5388f2 100644 --- a/node-graph/interpreted-executor/benches/run_once_gungraun.rs +++ b/node-graph/interpreted-executor/benches/run_once_gungraun.rs @@ -13,9 +13,12 @@ fn setup_run_once(name: &str) -> DynamicExecutor { #[library_benchmark] #[benches::with_setup(args = ["isometric-fountain", "painted-dreams", "procedural-string-lights", "parametric-dunescape", "red-dress", "valley-of-spires"], setup = setup_run_once)] -pub fn run_once(executor: DynamicExecutor) { +pub fn run_once(executor: DynamicExecutor) -> DynamicExecutor { let context = application_io::RenderConfig::default(); black_box(futures::executor::block_on(executor.tree().eval_tagged_value(executor.output(), black_box(context))).unwrap()); + + // Return the executor so its teardown happens outside the measured section + executor } library_benchmark_group!(name = run_once_group; benchmarks = run_once); diff --git a/node-graph/interpreted-executor/benches/update_executor_gungraun.rs b/node-graph/interpreted-executor/benches/update_executor_gungraun.rs index 469008682b..91017ee3b8 100644 --- a/node-graph/interpreted-executor/benches/update_executor_gungraun.rs +++ b/node-graph/interpreted-executor/benches/update_executor_gungraun.rs @@ -15,9 +15,12 @@ fn setup_update_executor(name: &str) -> (DynamicExecutor, ProtoNetwork) { #[library_benchmark] #[benches::with_setup(args = ["isometric-fountain", "painted-dreams", "procedural-string-lights", "parametric-dunescape", "red-dress", "valley-of-spires"], setup = setup_update_executor)] -pub fn update_executor(setup: (DynamicExecutor, ProtoNetwork)) { +pub fn update_executor(setup: (DynamicExecutor, ProtoNetwork)) -> DynamicExecutor { let (mut executor, network) = setup; let _ = black_box(futures::executor::block_on(executor.update(black_box(network)))); + + // Return the executor so its teardown happens outside the measured section + executor } library_benchmark_group!(name = update_group; benchmarks = update_executor);