Skip to content

perf(search): optimize reciprocal rank fusion - #1085

Merged
d-oit merged 1 commit into
mainfrom
perf-search-rrf-lookup-table-10197246288444786388
Nov 4, 2026
Merged

d-oit merged 1 commit into
mainfrom
perf-search-rrf-lookup-table-10197246288444786388

Conversation

@d-oit

@d-oit d-oit commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Optimizes reciprocalRankFusion in src/lib/search/fusion.ts.

  • Precomputed rank contributions table (256 ranks) in Float64Array to eliminate repeated floating-point divisions.
  • Eliminated intermediate object cloning on insertion into the fusion map, cloning only the final top-K items.
  • Replaced Intl-based localeCompare with binary string comparison for deterministic ID tie-breaking.
  • Converted forEach loops and slice-map chains to index-based iteration and pre-sized array allocations.
    Benchmark throughput measured via pnpm run bench:measure:
  • Disjoint 100-item rankings: 21,702.90 hz -> 27,109.81 hz (~25% speedup)
  • Half-overlapping 100-item rankings: 27,517.61 hz -> 32,941.73 hz (~20% speedup)

PR created automatically by Jules for task 10197246288444786388 started by @d-oit

- Precompute rank contribution values for depths 0..255 using a Float64Array lookup table to eliminate repeated divisions in the fusion loop.
- Avoid intermediate object cloning on Map insertion; defer shallow clone to output slice.
- Replace localeCompare with binary string comparison for deterministic tie-breaking.
- Use index-based loops and pre-sized output array.
@vercel

vercel Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
do-knowledge-studio Ready Ready Preview, v0 Nov 4, 2026 2:16am UTC

@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.

@github-actions github-actions Bot added the config label Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Blocked merge diagnosis — blocked
⏳ Check run(s) still in progress: ["Codacy Static Code Analysis","Dependency Advisory Audit","Secret Detection","Infrastructure as Code Security","Shell Script Security Analysis","Trivy Filesystem Security Scan","labeler","Detect Changes","Stale Base Guard","Diagnose Blocked Merge State","Performance Benchmarks (advisory)","commitlint","Analyze (actions)","Analyze (javascript-typescript)","Analyze (python)"]

@codacy-production

Copy link
Copy Markdown
Contributor

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@d-oit
d-oit merged commit e872a44 into main Nov 4, 2026
28 checks passed
@d-oit
d-oit deleted the perf-search-rrf-lookup-table-10197246288444786388 branch November 4, 2026 06:45

This branch was successfully deployed

1 active deployment
Preview — 0a8e5064 Deployed Nov 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant