From 096115bd948c023da31fd20bf3be5513e3aa5d81 Mon Sep 17 00:00:00 2001 From: boris Date: Fri, 28 Aug 2026 08:31:40 +0800 Subject: [PATCH] perf(core): reuse aligned snapshots in universe scan --- crates/fidc-core/src/platform_expr_strategy.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/crates/fidc-core/src/platform_expr_strategy.rs b/crates/fidc-core/src/platform_expr_strategy.rs index b7abec7..0665c17 100644 --- a/crates/fidc-core/src/platform_expr_strategy.rs +++ b/crates/fidc-core/src/platform_expr_strategy.rs @@ -8889,16 +8889,16 @@ impl PlatformExprStrategy { if ctx.has_dynamic_universe() && !ctx.dynamic_universe_contains(&factor.symbol) { continue; } + let snapshots = ctx.data.symbol_snapshots_by_id(date, symbol_id); let synthetic_candidate; - let candidate = - if let Some(candidate) = ctx.data.candidate_by_symbol_id(date, symbol_id) { - candidate - } else { - synthetic_candidate = - crate::data::missing_candidate_risk_state(date, &factor.symbol); - &synthetic_candidate - }; - let Some(market) = ctx.data.market_by_symbol_id(date, symbol_id) else { + let candidate = if let Some(candidate) = snapshots.candidate { + candidate + } else { + synthetic_candidate = + crate::data::missing_candidate_risk_state(date, &factor.symbol); + &synthetic_candidate + }; + let Some(market) = snapshots.market else { continue; }; let (reject_from_universe, selection_decision) = if collect_risk_decisions {