Skip to content

Improve interactivity in face of concurrent diagnostics - #421

Merged
razzmatazz merged 2 commits into
mainfrom
interactivity-perf-improvement
Aug 31, 2026
Merged

razzmatazz merged 2 commits into
mainfrom
interactivity-perf-improvement

Conversation

@razzmatazz

Copy link
Copy Markdown
Owner

Process workspace/diagnostic projects sequentially instead of an unbounded per-project Async.Start fan-out. This caps analyzer-driven diagnostic work, so it no longer starves interactive requests (completion, hover, ...) sharing the same ThreadPool. See plans/interactive-request-latency-vs-analyzers.md (Option C) for the full analysis and history of the abandoned Option A/B attempts.

🤖 Generated with ECA (anthropic/claude-sonnet-5)

razzmatazz and others added 2 commits August 31, 2026 09:14
Process workspace/diagnostic projects sequentially instead of an unbounded
per-project Async.Start fan-out, and disable Roslyn's internal
concurrentAnalysis for both analyzer entry points. Together these cap
analyzer-driven diagnostic work to one core system-wide, so it no longer
starves interactive requests (completion, hover, ...) sharing the same
ThreadPool. See plans/interactive-request-latency-vs-analyzers.md (Option C)
for the full analysis and history of the abandoned Option A/B attempts.

🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-sonnet-5)

Co-Authored-By: eca-agent <git@eca.dev>
With workspace/diagnostic now analyzing one project at a time, there's no
longer a second project's analyzer pass competing for cores, so Roslyn's own
per-project analyzer concurrency no longer has anything to starve. Validated
against a real multi-project session: completion stays responsive throughout
a full analyzer-enabled sweep. Leaving concurrentAnalysis at Roslyn's default
avoids needlessly slowing down each project's sweep.

Also adds a CHANGELOG.md entry for the interactive-request-latency fix.

🤖 Generated with [ECA](https://eca.dev) (anthropic/claude-sonnet-5)

Co-Authored-By: eca-agent <git@eca.dev>
@razzmatazz
razzmatazz merged commit 5611a5a into main Aug 31, 2026
3 checks passed
@razzmatazz
razzmatazz deleted the interactivity-perf-improvement branch August 31, 2026 06:27
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