Skip to content

⚡ Bolt: Replace O(n) array filtering with O(log n) binary search#61

Draft
toreleon wants to merge 2 commits into
masterfrom
bolt-optimize-array-filtering-7501572209619970543
Draft

⚡ Bolt: Replace O(n) array filtering with O(log n) binary search#61
toreleon wants to merge 2 commits into
masterfrom
bolt-optimize-array-filtering-7501572209619970543

Conversation

@toreleon

Copy link
Copy Markdown
Owner

💡 What: Added a reusable findLastBarIndex binary search utility to src/data/sources/dnsePublic.ts and updated hot-path time-series data truncation in clipBars, vnindexAt, and priceOverride to use it.
🎯 Why: Time-series arrays (like OHLCV bars) are chronologically sorted. Using Array.prototype.filter to look up data up to a specific time point runs in O(n) time, creating significant performance overhead in tight loops like the backtesting engine.
📊 Impact: Reduces lookahead overhead from O(n) to O(log n) per lookup. For long backtest runs processing large OHLCV arrays on every 30m turn, this substantially speeds up the data truncation step, directly speeding up loop execution.
🔬 Measurement: All tests pass normally. Lookups on larger bars datasets will show marked reduction in CPU cycle time due to the O(log n) approach versus processing every element.


PR created automatically by Jules for task 7501572209619970543 started by @toreleon

…arket data arrays

Co-authored-by: toreleon <42534763+toreleon@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

…arket data arrays

Also includes fixes for CI high-severity vulnerabilities in ws and undici dependencies.

Co-authored-by: toreleon <42534763+toreleon@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant