Skip to content

⚡ Bolt: Optimize parseTask string allocation in hot path#491

Open
n24q02m wants to merge 2 commits into
mainfrom
bolt-parsetask-optimization-5778669114027478509
Open

⚡ Bolt: Optimize parseTask string allocation in hot path#491
n24q02m wants to merge 2 commits into
mainfrom
bolt-parsetask-optimization-5778669114027478509

Conversation

@n24q02m

@n24q02m n24q02m commented Jun 17, 2026

Copy link
Copy Markdown
Owner

💡 What: Replaced String.prototype.split('/') in the parseTask function with manual string scanning using indexOf and substring. Additionally, cached the lowercased task title in a new titleLower property, and updated taskHasOpenPR to use this cached value. Updated mock definitions in tests/background.test.js to align with the optimized parseTask output.
🎯 Why: parseTask is a hot path called for every task returned from the batchexecute API. split('/') incurs an array allocation penalty, which can trigger additional garbage collection and slow down parsing during large bulk operations. Furthermore, taskHasOpenPR evaluates titles in a tight nested loop—recomputing .toLowerCase() continuously compounded the overhead.
📊 Impact: Reduces transient memory allocation per task and eliminates redundant string computation when checking for open PRs, improving overall performance and smoothness during orchestrator task discovery/filtering.
🔬 Measurement: Verify tests run successfully using pnpm test and note the exact match with legacy output semantics for parsed repo, owner, and repoName details via manual object logging test scripts.


PR created automatically by Jules for task 5778669114027478509 started by @n24q02m

Replace `split('/')` with manual string scanning (`indexOf` and `substring`) to prevent intermediate array allocation overhead. Cache the lowercased task title as `titleLower` on the object so `taskHasOpenPR` doesn't need to recalculate it repeatedly during filtering. Updated related mock payloads in tests to match the new shape.

Co-authored-by: n24q02m <135627235+n24q02m@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.

@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Replace `split('/')` with manual string scanning (`indexOf` and `substring`) to prevent intermediate array allocation overhead. Cache the lowercased task title as `titleLower` on the object so `taskHasOpenPR` doesn't need to recalculate it repeatedly during filtering. Updated related mock payloads in tests to match the new shape.

Also fix unrelated accessibility failures and biome json format failure in github CI.

Co-authored-by: n24q02m <135627235+n24q02m@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