Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invoke-Formatter: Skip VariableAnalysis, which is not used by Formatter rules - this yields a 25% performance improvement #1451

Conversation

@bergmeister
Copy link
Collaborator

bergmeister commented Apr 18, 2020

PR Summary

Formatter rules do not call APIs from VariableAnalysis, therefore skipping its initialization makes formatting much faster.
For PowerShell's 3000 line build.psm1 file, this changes execution time from 2 seconds to 1.5 seconds.

PR Checklist

… a 50% performance improvement
@bergmeister bergmeister requested review from rjmholt and JamesWTruher Apr 18, 2020
@bergmeister bergmeister changed the title Invoke-Formatter: Skip VariableAnalysis, which is not used by Formatter rules - this yields a 25%-50% performance improvement Invoke-Formatter: Skip VariableAnalysis, which is not used by Formatter rules - this yields a 25% performance improvement Apr 19, 2020
@JamesWTruher JamesWTruher merged commit bd5a4b1 into PowerShell:master Apr 21, 2020
12 checks passed
12 checks passed
PSScriptAnalyzer-CI Build #20200418.4 succeeded
Details
PSScriptAnalyzer-CI (Build Full_Build) Build Full_Build succeeded
Details
PSScriptAnalyzer-CI (Test Ubuntu_16_04) Test Ubuntu_16_04 succeeded
Details
PSScriptAnalyzer-CI (Test Ubuntu_18_04) Test Ubuntu_18_04 succeeded
Details
PSScriptAnalyzer-CI (Test Windows_Server2016_PowerShell_5_1) Test Windows_Server2016_PowerShell_5_1 succeeded
Details
PSScriptAnalyzer-CI (Test Windows_Server2016_PowerShell_Core) Test Windows_Server2016_PowerShell_Core succeeded
Details
PSScriptAnalyzer-CI (Test Windows_Server2019_PowerShell_5_1) Test Windows_Server2019_PowerShell_5_1 succeeded
Details
PSScriptAnalyzer-CI (Test Windows_Server2019_PowerShell_Core) Test Windows_Server2019_PowerShell_Core succeeded
Details
PSScriptAnalyzer-CI (Test macOS_10_14_Mojave) Test macOS_10_14_Mojave succeeded
Details
PSScriptAnalyzer-CI (Test macOS_10_15_Catalina) Test macOS_10_15_Catalina succeeded
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
license/cla All CLA requirements met.
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.