Improve performance of UseConsistentIndentation -> 35% speedup for formatter by bergmeister · Pull Request #1458 · PowerShell/PSScriptAnalyzer
PR Summary
Speedup is relative to the speed BEFORE my recent 2 PRs so that one sees the impact relative to those improvments (therefore the actual speedup relative to master would actually be higher). Speed is for a call of Invoke-Formatter with the default settings of the VS-Code extension.
Because the rule already loops through all tokens, there was a line that did a search through all tokens and the list of tokens can be quite long for big scripts.
First improvement would've been to create a list just consisting of pipeline tokens but even then I still saw some overhead just because it had to loop the whole list again. Therefore I optimized it further to just walk back on the current line, which is the only line of interest.
If we take this improvement and the previous 2 PRs together, then the formatter is nearly 3 times faster in total.
PR Checklist
- PR has a meaningful title
- Use the present tense and imperative mood when describing your changes
- Summarized changes
- Change is not breaking
- Make sure all
.cs,.ps1and.psm1files have the correct copyright header - Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
- This PR is ready to merge and is not Work in Progress.
- If the PR is work in progress, please add the prefix
WIP:to the beginning of the title and remove the prefix when the PR is ready.
- If the PR is work in progress, please add the prefix