The Wayback Machine - https://web.archive.org/web/20220212124139/https://github.com/dotnet/aspnetcore/issues/40175
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

Build Time Regression From Net 5 to Net 6 #40175

Open
1 task done
stap123 opened this issue Feb 12, 2022 · 0 comments
Open
1 task done

Build Time Regression From Net 5 to Net 6 #40175

stap123 opened this issue Feb 12, 2022 · 0 comments

Comments

@stap123
Copy link

@stap123 stap123 commented Feb 12, 2022

Is there an existing issue for this?

  • I have searched the existing issues

Describe the bug

When upgrading our project from net5.0 to net6.0 we have seen major regressions in build time. Our project (ASP.NET Core MVC with controllers and views) went from a build of ~19secs to ~1min 10secs. Builds were done in windows terminal (current channel) using dotnet build --clp:PerformanceSummary for all of these. Our outputs are below for what doesn't give away too much info publicly 😄

Our Project NET 5

Task Performance Summary:
        0 ms  ComputeCssScope                            1 calls
        0 ms  FindInList                                 1 calls
        0 ms  ApplyCssScopes                             1 calls
        1 ms  ValidateStaticWebAssetsUniquePaths         1 calls
        1 ms  Touch                                      2 calls
        1 ms  AssignCulture                             15 calls
        1 ms  NuGetMessageTask                           1 calls
        1 ms  Delete                                    15 calls
        1 ms  ResolveAllScopedCssAssets                  1 calls
        1 ms  GetRestorePackageDownloadsTask            15 calls
        2 ms  GetAssemblyVersion                        15 calls
        2 ms  FindAppConfigFile                         15 calls
        2 ms  GetRestoreFrameworkReferencesTask         15 calls
        2 ms  DiscoverDefaultScopedCssItems              1 calls
        2 ms  CombineXmlElements                        14 calls
        2 ms  GetRestoreDotnetCliToolsTask              15 calls
        2 ms  GetRestorePackageReferencesTask           15 calls
        2 ms  ValidateExecutableReferences              15 calls
        2 ms  ShowPreviewMessage                        15 calls
        2 ms  WarnForInvalidProjectsTask                 1 calls
        2 ms  CheckForUnsupportedWinMDReferences        14 calls
        2 ms  ResolveFrameworkReferences                14 calls
        3 ms  GetRestoreProjectReferencesTask           15 calls
        3 ms  ApplyImplicitVersions                     18 calls
        3 ms  Message                                   77 calls
        3 ms  GetProjectTargetFrameworksTask            15 calls
        3 ms  GetFrameworkPath                          15 calls
        3 ms  AllowEmptyTelemetry                       16 calls
        4 ms  CheckIfPackageReferenceShouldBeFrameworkReference  32 calls
        4 ms  CombineTargetFrameworkInfoProperties      14 calls
        4 ms  AssignProjectConfiguration                13 calls
        5 ms  JoinItems                                 15 calls
        5 ms  CheckForImplicitPackageReferenceOverrides  30 calls
        5 ms  MakeDir                                   15 calls
        5 ms  GetRestoreProjectStyleTask                30 calls
        6 ms  CheckForDuplicateFrameworkReferences      28 calls
        6 ms  ReadLinesFromFile                         15 calls
        6 ms  RemoveDuplicates                          63 calls
        6 ms  GetPackageDirectory                      112 calls
        7 ms  CheckForDuplicateItems                    45 calls
        7 ms  FindUnderPath                             75 calls
        8 ms  GenerateMSBuildEditorConfig               15 calls
        9 ms  Hash                                      35 calls
       13 ms  WriteLinesToFile                          35 calls
       14 ms  CopyRefAssembly                           14 calls
       16 ms  CreateAppHost                              1 calls
       19 ms  ResolveAppHosts                           28 calls
       24 ms  AssignTargetPath                          91 calls
       27 ms  ConvertToAbsolutePath                     45 calls
       41 ms  CallTarget                                30 calls
       51 ms  Copy                                      47 calls
       64 ms  GetReferenceNearestTargetFrameworkTask    13 calls
       65 ms  ResolveTargetingPackAssets                14 calls
       76 ms  ProcessFrameworkReferences                28 calls
       86 ms  ResolvePackageAssets                      15 calls
      147 ms  RestoreTask                                1 calls
      167 ms  GetRestoreSettingsTask                    15 calls
      345 ms  ResolvePackageFileConflicts               15 calls
      348 ms  SdkRazorTagHelper                          1 calls
      432 ms  ResolveAssemblyReference                  15 calls
     6630 ms  MSBuild                                   75 calls
    15323 ms  Csc                                        2 calls

Our Project NET 6

Task Performance Summary:
        0 ms  ComputeCssScope                            1 calls
        0 ms  FindInList                                 1 calls
        0 ms  MergeConfigurationProperties               1 calls
        0 ms  ApplyCssScopes                             1 calls
        0 ms  ApplyJsModules                             1 calls
        1 ms  GenerateRuntimeConfigurationFiles          1 calls
        1 ms  NuGetMessageTask                           1 calls
        1 ms  Delete                                    15 calls
        1 ms  UpdatePackageStaticWebAssets               1 calls
        1 ms  AssignCulture                             15 calls
        1 ms  GetRestorePackageDownloadsTask            15 calls
        2 ms  GetRestoreFrameworkReferencesTask         15 calls
        2 ms  CombineXmlElements                        14 calls
        2 ms  FindAppConfigFile                         15 calls
        2 ms  ShowPreviewMessage                        15 calls
        2 ms  GetAssemblyVersion                        15 calls
        2 ms  GetRestorePackageReferencesTask           15 calls
        2 ms  DiscoverDefaultScopedCssItems              1 calls
        2 ms  ValidateExecutableReferences              15 calls
        2 ms  GetRestoreDotnetCliToolsTask              15 calls
        2 ms  GetRestoreProjectReferencesTask           15 calls
        2 ms  WarnForInvalidProjectsTask                 1 calls
        2 ms  ResolveFrameworkReferences                14 calls
        3 ms  ResolveAllScopedCssAssets                  1 calls
        3 ms  GetProjectTargetFrameworksTask            15 calls
        3 ms  Message                                   76 calls
        3 ms  CheckForUnsupportedWinMDReferences        14 calls
        3 ms  ApplyImplicitVersions                     18 calls
        3 ms  CheckForDuplicateFrameworkReferences      28 calls
        3 ms  AllowEmptyTelemetry                       16 calls
        3 ms  AssignProjectConfiguration                13 calls
        4 ms  GetFrameworkPath                          15 calls
        4 ms  CheckIfPackageReferenceShouldBeFrameworkReference  32 calls
        4 ms  CombineTargetFrameworkInfoProperties      14 calls
        4 ms  JoinItems                                 15 calls
        5 ms  CheckForImplicitPackageReferenceOverrides  30 calls
        5 ms  ReadLinesFromFile                         15 calls
        5 ms  GetRestoreProjectStyleTask                30 calls
        5 ms  GetPackageDirectory                      112 calls
        6 ms  MakeDir                                   16 calls
        6 ms  RemoveDuplicates                          63 calls
        6 ms  CopyRefAssembly                           14 calls
        6 ms  GenerateStaticWebAssetsDevelopmentManifest   1 calls
        7 ms  FindUnderPath                             75 calls
        7 ms  CheckForDuplicateItems                    45 calls
        7 ms  ConvertToAbsolutePath                     45 calls
       10 ms  CollectStaticWebAssetsToCopy               1 calls
       11 ms  EncodeRazorInputItem                       1 calls
       18 ms  WriteLinesToFile                          33 calls
       19 ms  GenerateMSBuildEditorConfig               15 calls
       19 ms  GetReferenceNearestTargetFrameworkTask    13 calls
       20 ms  AssignTargetPath                          91 calls
       24 ms  Hash                                      32 calls
       25 ms  ResolveAppHosts                           28 calls
       26 ms  GenerateStaticWebAssetsManifest            1 calls
       26 ms  ReadStaticWebAssetsManifestFile            1 calls
       27 ms  CreateAppHost                              1 calls
       33 ms  DefineStaticWebAssets                      3 calls
       36 ms  ResolveTargetingPackAssets                14 calls
       48 ms  Copy                                      46 calls
       62 ms  DiscoverStaticWebAssets                    3 calls
       68 ms  GetRestoreSettingsTask                    15 calls
       87 ms  ProcessFrameworkReferences                28 calls
       92 ms  CallTarget                                30 calls
      142 ms  RestoreTask                                1 calls
      328 ms  ResolvePackageFileConflicts               15 calls
      462 ms  GenerateDepsFile                          15 calls
      533 ms  ResolveAssemblyReference                  15 calls
      600 ms  ResolvePackageAssets                      15 calls
     8167 ms  MSBuild                                   75 calls
    66010 ms  Csc                                        1 calls

Expected Behavior

Not regress performance and developer productivity.

Steps To Reproduce

You can replicate an increase in build time by creating a new net5.0 'ASP.NET Core Web App' in VS2022 and then building that and creating a new net6.0 one and building that. This gives me a time of 1.72secs for net5.0 vs 2.95secs for net6.0.

New App NET 5

Task Performance Summary:
        0 ms  ComputeCssScope                            1 calls
        0 ms  GetAssemblyVersion                         1 calls
        0 ms  AssignCulture                              1 calls
        0 ms  GetRestorePackageReferencesTask            1 calls
        0 ms  ResolveAllScopedCssAssets                  1 calls
        0 ms  GetRestoreFrameworkReferencesTask          1 calls
        0 ms  FindAppConfigFile                          1 calls
        0 ms  GetRestoreProjectReferencesTask            1 calls
        0 ms  DiscoverDefaultScopedCssItems              1 calls
        0 ms  ValidateStaticWebAssetsUniquePaths         1 calls
        0 ms  CheckForUnsupportedWinMDReferences         1 calls
        0 ms  GetRestorePackageDownloadsTask             1 calls
        0 ms  ResolveFrameworkReferences                 1 calls
        0 ms  CheckForDuplicateFrameworkReferences       2 calls
        0 ms  GetRestoreDotnetCliToolsTask               1 calls
        0 ms  ShowPreviewMessage                         1 calls
        0 ms  ValidateExecutableReferences               1 calls
        0 ms  AllowEmptyTelemetry                        2 calls
        0 ms  ApplyCssScopes                             1 calls
        0 ms  JoinItems                                  1 calls
        0 ms  CheckForDuplicateItems                     3 calls
        0 ms  Delete                                     1 calls
        0 ms  FindInList                                 1 calls
        0 ms  ReadLinesFromFile                          1 calls
        0 ms  GetProjectTargetFrameworksTask             1 calls
        0 ms  Message                                    7 calls
        1 ms  FindUnderPath                              5 calls
        1 ms  ConvertToAbsolutePath                      3 calls
        1 ms  CopyRefAssembly                            1 calls
        1 ms  NuGetMessageTask                           1 calls
        1 ms  GenerateMSBuildEditorConfig                1 calls
        1 ms  AssignTargetPath                           7 calls
        1 ms  CheckForImplicitPackageReferenceOverrides   2 calls
        1 ms  GetRestoreProjectStyleTask                 2 calls
        1 ms  Hash                                       7 calls
        1 ms  Touch                                      3 calls
        2 ms  RemoveDir                                  1 calls
        2 ms  RemoveDuplicates                           7 calls
        2 ms  CallTarget                                 2 calls
        2 ms  WarnForInvalidProjectsTask                 1 calls
        2 ms  GetPackageDirectory                        8 calls
        2 ms  MakeDir                                    3 calls
        3 ms  WriteLinesToFile                           8 calls
        3 ms  GetFrameworkPath                           1 calls
        4 ms  Copy                                       5 calls
        6 ms  ResolveTargetingPackAssets                 1 calls
        8 ms  CreateAppHost                              1 calls
        9 ms  ResolveAppHosts                            2 calls
       15 ms  GenerateDepsFile                           1 calls
       23 ms  ResolvePackageFileConflicts                1 calls
       30 ms  GetRestoreSettingsTask                     1 calls
       32 ms  GenerateRuntimeConfigurationFiles          1 calls
       32 ms  ResolvePackageAssets                       1 calls
       32 ms  ProcessFrameworkReferences                 2 calls
       35 ms  FindAssembliesWithReferencesTo             1 calls
       65 ms  SdkRazorGenerate                           1 calls
       93 ms  ResolveAssemblyReference                   1 calls
      122 ms  MSBuild                                    7 calls
      184 ms  RestoreTask                                1 calls
      204 ms  Csc                                        2 calls
      437 ms  SdkRazorTagHelper                          1 calls

New App NET 6

Task Performance Summary:
        0 ms  GetAssemblyVersion                         1 calls
        0 ms  AssignCulture                              1 calls
        0 ms  GetRestorePackageDownloadsTask             1 calls
        0 ms  ResolveAllScopedCssAssets                  1 calls
        0 ms  MergeConfigurationProperties               1 calls
        0 ms  GetRestorePackageReferencesTask            1 calls
        0 ms  GetRestoreProjectReferencesTask            1 calls
        0 ms  DiscoverDefaultScopedCssItems              1 calls
        0 ms  UpdatePackageStaticWebAssets               1 calls
        0 ms  FindAppConfigFile                          1 calls
        0 ms  EncodeRazorInputItem                       1 calls
        0 ms  CheckForUnsupportedWinMDReferences         1 calls
        0 ms  GetRestoreFrameworkReferencesTask          1 calls
        0 ms  ResolveFrameworkReferences                 1 calls
        0 ms  CheckForDuplicateFrameworkReferences       2 calls
        0 ms  ShowPreviewMessage                         1 calls
        0 ms  GetRestoreDotnetCliToolsTask               1 calls
        0 ms  ApplyJsModules                             1 calls
        0 ms  AllowEmptyTelemetry                        2 calls
        0 ms  ValidateExecutableReferences               1 calls
        0 ms  Message                                    6 calls
        0 ms  FindInList                                 1 calls
        0 ms  JoinItems                                  1 calls
        0 ms  Delete                                     1 calls
        0 ms  CheckForDuplicateItems                     3 calls
        0 ms  CollectStaticWebAssetsToCopy               1 calls
        0 ms  GetProjectTargetFrameworksTask             1 calls
        0 ms  ReadLinesFromFile                          1 calls
        0 ms  ApplyCssScopes                             1 calls
        1 ms  FindUnderPath                              5 calls
        1 ms  GetPackageDirectory                        8 calls
        1 ms  ComputeCssScope                            1 calls
        1 ms  Touch                                      1 calls
        1 ms  CopyRefAssembly                            1 calls
        1 ms  NuGetMessageTask                           1 calls
        1 ms  ConvertToAbsolutePath                      3 calls
        1 ms  CheckForImplicitPackageReferenceOverrides   2 calls
        1 ms  GenerateMSBuildEditorConfig                1 calls
        1 ms  Hash                                       4 calls
        1 ms  GetRestoreProjectStyleTask                 2 calls
        1 ms  AssignTargetPath                           7 calls
        1 ms  DefineStaticWebAssets                      6 calls
        1 ms  ConcatenateCssFiles                        2 calls
        2 ms  RemoveDuplicates                           7 calls
        2 ms  MakeDir                                    2 calls
        2 ms  ReadStaticWebAssetsManifestFile            1 calls
        2 ms  CallTarget                                 2 calls
        2 ms  GetFrameworkPath                           1 calls
        2 ms  WarnForInvalidProjectsTask                 1 calls
        3 ms  WriteLinesToFile                           7 calls
        3 ms  Copy                                       4 calls
        4 ms  ResolvePackageFileConflicts                1 calls
        5 ms  GenerateGlobalUsings                       1 calls
        7 ms  DiscoverStaticWebAssets                    3 calls
        8 ms  GenerateDepsFile                           1 calls
        9 ms  CreateAppHost                              1 calls
       10 ms  ResolveAppHosts                            2 calls
       10 ms  GenerateStaticWebAssetsDevelopmentManifest   1 calls
       23 ms  GenerateStaticWebAssetsManifest            1 calls
       28 ms  ResolvePackageAssets                       1 calls
       29 ms  GenerateRuntimeConfigurationFiles          1 calls
       31 ms  GetRestoreSettingsTask                     1 calls
       31 ms  ProcessFrameworkReferences                 2 calls
       32 ms  ResolveTargetingPackAssets                 1 calls
       55 ms  FindAssembliesWithReferencesTo             1 calls
      114 ms  ResolveAssemblyReference                   1 calls
      123 ms  MSBuild                                    7 calls
      173 ms  RestoreTask                                1 calls
     1838 ms  Csc                                        1 calls

Exceptions (if any)

No response

.NET Version

6.0.200-preview.22055.15

Anything else?

Does anyone have any immediate thoughts on what this might be?

It's obviously really hitting our productivity since the upgrade. Let me know if you need more details, happy to share more privately about the actual projects.

Using latest versions of everything 6.0.2, VS Community (Windows) up to date etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant