From b646f4559cb59712969743bab325b16d4fb2f8dc Mon Sep 17 00:00:00 2001 From: YK Date: Thu, 12 Feb 2026 17:35:33 -0500 Subject: [PATCH] perf: skip dispatch pipeline when all proof targets already fetched (#22147) Co-authored-by: Ubuntu --- .../engine/tree/src/tree/payload_processor/multiproof.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crates/engine/tree/src/tree/payload_processor/multiproof.rs b/crates/engine/tree/src/tree/payload_processor/multiproof.rs index 2d3fbc52c9..73b0c53b9b 100644 --- a/crates/engine/tree/src/tree/payload_processor/multiproof.rs +++ b/crates/engine/tree/src/tree/payload_processor/multiproof.rs @@ -771,6 +771,11 @@ impl MultiProofTask { fn on_prefetch_proof(&mut self, mut targets: VersionedMultiProofTargets) -> u64 { // Remove already fetched proof targets to avoid redundant work. targets.retain_difference(&self.fetched_proof_targets); + + if targets.is_empty() { + return 0; + } + extend_multiproof_targets(&mut self.fetched_proof_targets, &targets); // For Legacy multiproofs, make sure all target accounts have an `AddedRemovedKeySet` in the @@ -889,6 +894,10 @@ impl MultiProofTask { state_updates += 1; } + if not_fetched_state_update.is_empty() { + return state_updates; + } + // Clone+Arc MultiAddedRemovedKeys for sharing with the dispatched multiproof tasks let multi_added_removed_keys = Arc::new(MultiAddedRemovedKeys { account: self.multi_added_removed_keys.account.clone(),