fix: improve performance in AI request logging #14769
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What it does
Instead of appending AI requests line by line to the output channel, we now append them in a single step. Since appending to a channel is a relatively expensive operation, this change significantly improves performance for large requests.
This is particularly noticeable when AI inline code completions are enabled for large files, as many requests with many lines may be sent during typing.
Performance Analysis when typing in average speed for 5 seconds in a large file (1000 lines) without this PR
doAppend
of the output channelPerformance Analysis when typing in average speed for 5 seconds in a large file (1000 lines) with this PR
doAppend
Performance Analysis when typing in average speed for 5 seconds in a large file (1000 lines) without inline completions
How to test
Enable automatic inline completions and feel the performance difference. Especially noticeable in large files
Breaking changes
Attribution
Review checklist
Reminder for reviewers