dotnet / dotnet/winforms

Performance regression in VS2026 in AvoidPassingTaskWithoutCancellationTokenAnalyzer

Open
#14,217 3 comments 1 reaction 0 assignees View on GitHub
area-Analyzers/CodeFixes
Dominant language
C#
Stars
4.9k
Forks
1.1k
Avg merge
1d 13m
Merged PRs (30d)
85

Description

VS2026 builds of our project became drastically slower than VS2022 builds.

We use .NET 9 target framework, and we have this “global.json” in the solution root:

```
{
"sdk": {
"version": "9.0.0",
"rollForward": "latestFeature"
}
}
```

Some binlogs are privately attached to https://developercommunity.visualstudio.com/t/VS2026-Rebuild-is-much-slower-than-in-/11027380 where I first reported the problem. There you will also find some time measuring.

Building without analyzers (`/p:RunAnalyzersDuringBuild=false`) reduced the build time to values similar to VS2022 (still slightly slower).

During analysis of this issue, I found the [reportanalyzer switch](https://github.com/dotnet/roslyn/blob/main/docs/analyzers/Report%20Analyzer%20Format.md), and this one brought me to the root cause of the delay I think:

Here are some log snippets (the first line translates to “Total analyzer execution time”):

VS2022:
```
Gesamtausführungszeit des Analysetools: 10,801 Sekunden.
Zeit (s) % Analysetool
6,212 57 System.Windows.Forms.Analyzers.CSharp, Version=9.0.12.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
6,194 57 System.Windows.Forms.CSharp.Analyzers.AvoidPassingTaskWithoutCancellationToken.AvoidPassingTaskWithoutCancellationTokenAnalyzer (WFO2001)
0,018 <1 System.Windows.Forms.CSharp.Analyzers.MissingPropertySerializationConfiguration.MissingPropertySerializationConfigurationAnalyzer (WFO1000)
2,546 23 Microsoft.CodeAnalysis.CSharp.NetAnalyzers, Version=9.0.12.32904, Culture=neutral, PublicKeyToken=31bf3856ad364e35
```

VS2026:
```
Gesamtausführungszeit des Analysetools: 64,305 Sekunden.
Zeit (s) % Analysetool
59,593 92 System.Windows.Forms.Analyzers.CSharp, Version=9.0.12.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
59,572 92 System.Windows.Forms.CSharp.Analyzers.AvoidPassingTaskWithoutCancellationToken.AvoidPassingTaskWithoutCancellationTokenAnalyzer (WFO2001)
0,021 <1 System.Windows.Forms.CSharp.Analyzers.MissingPropertySerializationConfiguration.MissingPropertySerializationConfigurationAnalyzer (WFO1000)
2,385 3 Microsoft.CodeAnalysis.CSharp.NetAnalyzers, Version=9.0.12.32904, Culture=neutral, PublicKeyToken=31bf3856ad364e35

```

So it seems "System.Windows.Forms.CSharp.Analyzers.AvoidPassingTaskWithoutCancellationToken.AvoidPassingTaskWithoutCancellationTokenAnalyzer" causes the delay.

The file "C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\Roslyn\csc.exe" of VS2026 has file version 5.0.26.5402, the same file in VS2022 has 4.1400.25.41205

Adding a ".editorconfig" file with this line optimizes compile time:
```
dotnet_diagnostic.WFO2001.severity = none
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.