Skip to content

⚡ Bolt: Replace static chunking with sliding window concurrency in ProcessMemoryScanner#70

Open
acebytes wants to merge 1 commit intomainfrom
bolt/sliding-window-concurrency-4856898140936588349
Open

⚡ Bolt: Replace static chunking with sliding window concurrency in ProcessMemoryScanner#70
acebytes wants to merge 1 commit intomainfrom
bolt/sliding-window-concurrency-4856898140936588349

Conversation

@acebytes
Copy link
Copy Markdown
Contributor

@acebytes acebytes commented Apr 2, 2026

💡 What:
Replaced static chunking (stride().map { ... }) in ProcessMemoryScanner.scanPIDs with a sliding window TaskGroup execution model.

🎯 Why:
When processing tasks in chunks, the TaskGroup has to wait for the slowest task in the current chunk to finish before moving on to the next chunk (tail latency). A sliding window immediately spawns a new task as soon as any running task finishes, keeping the pipeline at maximum concurrency at all times. This eliminates tail latency stalls during intensive memory scanning across hundreds of processes. It also removes the memory overhead associated with building the intermediate chunked arrays.

📊 Impact:
Significantly improves CPU utilization and overall throughput when retrieving memory stats across hundreds of running processes, especially since proc_pid_rusage can exhibit varying latency per process. Memory overhead is also slightly reduced by iterating pids directly without allocating intermediate sub-arrays.

🔬 Measurement:
Run Cacheout and observe the responsiveness of the Memory tab (which populates process lists). The "proc_pid_rusage" operations should return results noticeably faster. Check total CPU time spent in scanPIDs via Instruments when polling is highly active.


PR created automatically by Jules for task 4856898140936588349 started by @acebytes

…ryScanner`

This refactors the task chunking approach inside `ProcessMemoryScanner.scanPIDs` to a sliding window iteration pattern utilizing a single `TaskGroup`. This avoids tail-latency delays and maximizes CPU utilization for concurrent process memory scanning.

Co-authored-by: acebytes <2820910+acebytes@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.

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