cache builtin commands for shells to decrease terminal completion latency #252232
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.
To isolate the improvement, I first requested completions in a shell other than the target shell to discard the extension activation timing and to obtain a baseline. I then requested completions in the shell of interest and recorded the latency. After reloading the window, I repeated the process - first requesting completions in a non-target shell, then in the shell of interest - tracking the latency again.
Reduces latency by
2432
ms forbash
(90%),460
ms forpwsh
(64%), and661
ms onzsh
(79%).Before:

after requesting completions in
pwsh
, requesting completions inbash
after reloading the window and after requesting completions in

pwsh
, requesting completions inbash
After:

after requesting completions in
pwsh
, requesting completions inbash
after reloading the window and after requesti 8000 ng completions in

pwsh
, requesting completions inbash
Opposite, but for
pwsh
Before:


Reload
After:


Reload
Same, but for
zsh
Before:


Reload
After:


Reload
Part of #251994