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

Performance regression in CompilationWithAnalyzers.GetAllDiagnosticsAsync and GetAnalyzerDiagnosticsAsync #10530

Closed
mavasani opened this issue Apr 13, 2016 · 0 comments
Assignees
Labels
Area-Analyzers Bug Tenet-Performance Regression in measured performance of the product from goals. Urgency-Soon
Milestone

Comments

@mavasani
Copy link
Contributor

See discussion here

My initial guess is this is happening due to analyzer state tracking. Given that we need some new API on CompilationWithAnalyzers which runs analysis without any state tracking for the OOP work (#6846), we should also make these APIs run without any state tracking.

This issue tracks adding/changing these APIs and then verifying the performance regression from DotNetAnalyzers/StyleCopAnalyzers#2102 (comment)

@mavasani mavasani self-assigned this Apr 13, 2016
@mavasani mavasani added Bug Area-Analyzers Tenet-Performance Regression in measured performance of the product from goals. Urgency-Soon labels Apr 13, 2016
@mavasani mavasani added this to the 1.3 milestone Apr 13, 2016
mavasani added a commit to mavasani/roslyn that referenced this issue Apr 20, 2016
…rDiagnosticsAsync and new public APIs 'GetAnalysisResultAsync' to fetch the entire analysis result with diagnostics categorized by kind (syntax, semantic, compilation), tree and analyzer.

Now only the partial analysis APIs (GetAnalyzerSyntaxDiagnosticsAsync, GetAnalyzerSemanticDiagnosticsAsync and GetAnalyzerCompilationDiagnosticsAsync) do analyzer state tracking. Rest of the APIs execute analyzers without state tracking, improving overall performance.

Fixes dotnet#10530
mavasani added a commit to mavasani/roslyn that referenced this issue Apr 20, 2016
…rDiagnosticsAsync and new public APIs 'GetAnalysisResultAsync' to fetch the entire analysis result with diagnostics categorized by kind (syntax, semantic, compilation), tree and analyzer.

Now only the partial analysis APIs (GetAnalyzerSyntaxDiagnosticsAsync, GetAnalyzerSemanticDiagnosticsAsync and GetAnalyzerCompilationDiagnosticsAsync) do analyzer state tracking. Rest of the APIs execute analyzers without state tracking, improving overall performance.

Fixes dotnet#10530
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Analyzers Bug Tenet-Performance Regression in measured performance of the product from goals. Urgency-Soon
Projects
None yet
Development

No branches or pull requests

1 participant