- Notifications
You must be signed in to change notification settings - Fork 396
Description
Describe the bug
The tests using coverlet used to be correctly fast, but since installing dotnet sdk 8.0.200 (released on 2024-02-13), the time skyrocketed from 15 seconds to > 7min. This is happening on two different tests projects which are not especially large.
To Reproduce
Hard to say, some other projects have not significantly changed. I suspect that these projects contain a few large methods (using nested inline methods in F#), but it used to be instrumented far faster.
Expected behavior
Instrumentation time should remain in the same range as before.
Actual behavior
The time in instrumentation is very long:
Project Evaluation Performance Summary: 125 ms D:\dev\app\Connectivity.Dispatcher.Proto\Connectivity.Dispatcher.Proto.csproj 2 calls 255 ms D:\dev\app\Connectivity.Planning\Connectivity.Planning.fsproj 2 calls 323 ms D:\dev\app\Connectivity.Planning.Test\Connectivity.Planning.Test.fsproj 3 calls 404 ms D:\dev\app\NATS.OpenTelemetry\NATS.OpenTelemetry.fsproj 6 calls Project Performance Summary: 2498 ms D:\dev\app\Connectivity.Dispatcher.Proto\Connectivity.Dispatcher.Proto.csproj 9 calls 2 ms _GenerateRestoreProjectPathWalk 1 calls 0 ms _IsProjectRestoreSupported 1 calls 86 ms _GenerateRestoreGraphProjectEntry 1 calls 6 ms _GenerateProjectRestoreGraph 1 calls 3 ms GetTargetFrameworks 1 calls 1 ms GetNativeManifest 1 calls 0 ms InitializeSourceRootMappedPaths 1 calls 0 ms GetCopyToOutputDirectoryItems 1 calls 3868 ms D:\dev\app\NATS.OpenTelemetry\NATS.OpenTelemetry.fsproj 23 calls 168 ms _GenerateRestoreProjectPathWalk 1 calls 2 ms _GenerateRestoreProjectPathItemsPerFramework 2 calls 0 ms _IsProjectRestoreSupported 1 calls 19 ms _GenerateRestoreGraphProjectEntry 1 calls 0 ms _GetRestoreSettingsPerFramework 2 calls 56 ms _GenerateProjectRestoreGraph 1 calls 0 ms GetAllRuntimeIdentifiers 2 calls 45 ms _GenerateProjectRestoreGraphPerFramework 2 calls 214 ms GetTargetFrameworks 2 calls 13 ms GetTargetFrameworksWithPlatformForSingleTargetFramework 2 calls 0 ms GetNativeManifest 2 calls 0 ms GetCopyToOutputDirectoryItems 2 calls 0 ms InitializeSourceRootMappedPaths 1 calls 13905 ms D:\dev\app\Connectivity.Planning\Connectivity.Planning.fsproj 9 calls 228 ms _GenerateRestoreProjectPathWalk 1 calls 0 ms _IsProjectRestoreSupported 1 calls 95 ms _GenerateRestoreGraphProjectEntry 1 calls 7 ms _GenerateProjectRestoreGraph 1 calls 5 ms GetTargetFrameworks 1 calls 0 ms GetNativeManifest 1 calls 0 ms InitializeSourceRootMappedPaths 1 calls 0 ms GetCopyToOutputDirectoryItems 1 calls 405015 ms D:\dev\app\Connectivity.Planning.Test\Connectivity.Planning.Test.fsproj 8 calls 1442 ms Restore 1 calls 1 ms _IsProjectRestoreSupported 2 calls 747 ms _GenerateRestoreProjectPathWalk 1 calls 24 ms _GenerateRestoreGraphProjectEntry 1 calls 11 ms _GenerateProjectRestoreGraph 1 calls 385634 ms VSTest 1 calls Target Performance Summary: 0 ms _Protobuf_Compile_BeforeCsCompile 1 calls 0 ms InstrumentModulesAfterBuild 1 calls 0 ms GenerateCoverageResultAfterTest 1 calls 0 ms Protobuf_Compile 1 calls 0 ms AfterBuild 4 calls 0 ms Protobuf_AfterCompile 1 calls 0 ms PrepareResourceNames 4 calls 0 ms BeforeBuild 4 calls 0 ms ResGen 4 calls 0 ms Protobuf_BeforeCompile 1 calls 0 ms _ChooseAppHost 1 calls 0 ms GenerateMSBuildEditorConfigFile 1 calls 0 ms BeforeResGen 4 calls 0 ms CreateSatelliteAssemblies 4 calls 0 ms Compile 4 calls 0 ms BeforeCompile 4 calls 0 ms CoreBuild 4 calls 0 ms _InitializeSourceRootMappedPathsFromSourceControl 4 calls 0 ms _CopySourceItemsToOutputDirectory 4 calls 0 ms PrepareResources 4 calls 0 ms ResolvePackageDependenciesForBuild 4 calls 0 ms PrepareForRun 4 calls 0 ms _SetEmbeddedFilesFromSourceControlManagerUntrackedFiles 4 calls 0 ms AfterResGen 4 calls 0 ms CreateCustomManifestResourceNames 4 calls 0 ms ValidateCommandLineProperties 4 calls 0 ms GetTargetPath 4 calls 0 ms PrepareProjectReferences 4 calls 0 ms GetReferenceAssemblyPaths 4 calls 0 ms GetFrameworkPaths 4 calls 0 ms GenerateSourceLinkFile 4 calls 0 ms SetWin32ManifestProperties 4 calls 0 ms _InitializeSourceRootMappedPathsOpt 4 calls 0 ms _SetTargetFrameworkMonikerAttribute 1 calls 0 ms _CheckForUnsupportedTargetFrameworkAndFeatureCombination 1 calls 0 ms _GenerateRestoreGraphProjectEntry 4 calls 0 ms AfterResolveReferences 4 calls 0 ms _Protobuf_SanityCheck 1 calls 0 ms AfterCompile 4 calls 0 ms Build 4 calls 0 ms _BeforeVBCSCoreCompile 1 calls 0 ms _InitializeSourceControlInformationFromSourceControlManager 4 calls 0 ms Protobuf_PrepareCompileOptions 1 calls 0 ms gRPC_ResolvePluginFullPath 1 calls 0 ms GenerateAssemblyInfo 4 calls 0 ms _GetRestoreSettingsCurrentProject 3 calls 0 ms BeforeResolveReferences 4 calls 0 ms _Protobuf_GatherStaleFiles 1 calls 0 ms BuildOnlySettings 4 calls 0 ms _GenerateProjectRestoreGraphCurrentProject 3 calls 0 ms CopyAdditionalFiles 1 calls 0 ms _AddOutputPathToGlobalPropertiesToRemove 4 calls 0 ms _CheckForMismatchingPlatform 1 calls 0 ms _Microsoft_Extensions_Configuration_Binder_RemoveAnalyzer 3 calls 0 ms EnableIntermediateOutputPathMismatchWarning 4 calls 0 ms _GenerateRestoreProjectPathItemsCurrentProject 3 calls 0 ms _gRPC_PrepareCompileOptions 1 calls 0 ms _ReportUpgradeNetAnalyzersNuGetWarning 1 calls 0 ms _Protobuf_GatherStaleSimple 1 calls 0 ms _SetSourceLinkFilePath 4 calls 0 ms ResolveLockFileAnalyzers 4 calls 0 ms _GenerateProjectRestoreGraph 4 calls 0 ms _PopulateCommonStateForGetCopyToOutputDirectoryItems 4 calls 0 ms _GenerateRestoreDependencies 4 calls 0 ms _ComputeSkipAnalyzers 1 calls 0 ms AddDepsJsonAndRuntimeConfigToCopyItemsForReferencingProjects 2 calls 0 ms IncludeTransitiveProjectReferences 4 calls 0 ms _Protobuf_SelectFiles 1 calls 0 ms GenerateMSBuildEditorConfigFileShouldRun 1 calls 0 ms _GetAppHostPaths 1 calls 0 ms _CheckForUnsupportedHostingUsage 4 calls 0 ms InitializeSourceControlInformation 4 calls 0 ms _CheckAndUnsetUnsupportedPrefer32Bit 3 calls 0 ms ResolveSDKReferences 4 calls 0 ms ExpandSDKReferences 4 calls 0 ms _DefaultMicrosoftNETPlatformLibrary 4 calls 0 ms AddImplicitDefineConstants 4 calls 0 ms _GetRestoreTargetFrameworksAsItems 1 calls 0 ms _ComputeNETCoreBuildOutputFiles 4 calls 0 ms _Protobuf_EnforceInvariants 1 calls 0 ms _CheckForUnsupportedArtifactsPath 4 calls 0 ms _IsProjectRestoreSupported 4 calls 0 ms IgnoreJavaScriptOutputAssembly 4 calls 0 ms _GetRestoreSettingsPerFramework 5 calls 0 ms _CheckForObsoleteDotNetCliToolReferences 9 calls 0 ms CollectFrameworkReferences 5 calls 1 ms _CheckForUnsupportedCppNETCoreVersion 10 calls 1 ms GetNativeManifest 3 calls 1 ms _GetRestoreSettingsOverrides 4 calls 1 ms GetTargetPathWithTargetPlatformMoniker 4 calls 1 ms AddSourceRevisionToInformationalVersion 4 calls 1 ms SourceControlManagerPublishTranslatedUrls 4 calls 1 ms _Protobuf_AugmentLanguageCompile 1 calls 1 ms _LoadRestoreGraphEntryPoints 1 calls 1 ms _CheckForUnsupportedAppHostUsage 2 calls 1 ms ShowCallOfVSTestTaskWithParameter 1 calls 1 ms ResolveReferences 4 calls 1 ms _Protobuf_CoreCompile 1 calls 1 ms _CheckForCompileOutputs 4 calls 1 ms _GetProjectJsonPath 10 calls 1 ms _CheckForLanguageAndFeatureCombinationSupport 9 calls 1 ms _GenerateRuntimeConfigurationFilesInputCache 2 calls 1 ms CollectCentralPackageVersions 5 calls 1 ms _CheckContainersPackage 4 calls 1 ms _CheckForUnsupportedNETCoreVersion 9 calls 1 ms ShowMsbuildWithParameter 1 calls 1 ms Protobuf_ReconcileOutputs 1 calls 1 ms _GenerateSatelliteAssemblyInputs 4 calls 1 ms _ComputePackageReferencePublish 4 calls 1 ms _SplitProjectReferencesByFileExistence 4 calls 1 ms _GenerateCompileInputs 4 calls 1 ms GetAssemblyAttributes 4 calls 1 ms _AddMicrosoftNetCompilerToolsetFrameworkPackage 9 calls 1 ms CoreResGen 4 calls 2 ms IncludeTargetingPackReference 1 calls 2 ms _GetRestoreTargetFrameworkOverride 4 calls 2 ms _GetFrameworkAssemblyReferences 3 calls 2 ms _Protobuf_SetProtoRoot 1 calls 2 ms _GenerateRestoreSpecs 4 calls 2 ms ValidateExecutableReferences 3 calls 2 ms _GetCopyToOutputDirectoryItemsFromThisProject 4 calls 2 ms _GenerateRestoreProjectPathItems 4 calls 2 ms _Protobuf_GatherStaleBatched 2 calls 2 ms AddGlobalAnalyzerConfigForPackage_MicrosoftCodeAnalysisNetAnalyzers 1 calls 2 ms CollectPackageDownloads 5 calls 2 ms _CheckForInvalidConfigurationAndPlatform 4 calls 2 ms GetAssemblyVersion 4 calls 2 ms _ComputeUserRuntimeAssemblies 4 calls 3 ms ResolveLockFileCopyLocalFiles 4 calls 3 ms Protobuf_ResolvePlatform 1 calls 3 ms ReferencedPathMaps 1 calls 3 ms GenerateProgramFile 2 calls 3 ms _BlockWinMDsOnUnsupportedTFMs 4 calls 3 ms GetTargetFrameworks 3 calls 3 ms SplitResourcesByCulture 4 calls 3 ms _GenerateDotnetCliToolReferenceSpecs 4 calls 4 ms GetAllRuntimeIdentifiers 3 calls 4 ms CollectFSharpDesignTimeTools 3 calls 4 ms AssignProjectConfiguration 2 calls 4 ms _GetRestoreTargetFrameworksOutput 4 calls 4 ms _CollectTargetFrameworkForTelemetry 5 calls 4 ms InitializeSourceRootMappedPaths 4 calls 5 ms GenerateTargetFrameworkMonikerAttribute 4 calls 5 ms _SourceLinkHasSingleProvider 4 calls 5 ms ResolveOffByDefaultAnalyzers 4 calls 5 ms _CopyOutOfDateSourceItemsToOutputDirectory 2 calls 5 ms GenerateMSBuildEditorConfigFileCore 1 calls 6 ms CheckForImplicitPackageReferenceOverrides 9 calls 6 ms CheckForDuplicateItems 4 calls 6 ms ResolveLockFileReferences 4 calls 6 ms Protobuf_PrepareCompile 1 calls 6 ms IncrementalClean 4 calls 6 ms _GetCopyToOutputDirectoryItemsFromTransitiveProjectReferences 4 calls 6 ms _GenerateRestoreProjectSpec 4 calls 7 ms ResolveRuntimePackAssets 1 calls 7 ms GenerateNETCompatibleDefineConstants 4 calls 7 ms _ComputeToolPackInputsToProcessFrameworkReferences 9 calls 7 ms GenerateGlobalUsings 1 calls 8 ms SetPaketCommand 10 calls 8 ms _GenerateCompileDependencyCache 4 calls 8 ms AssignTargetPaths 4 calls 8 ms _SetEmbeddedWin32ManifestProperties 4 calls 8 ms PrepareForBuild 4 calls 8 ms _ComputeReferenceAssemblies 4 calls 8 ms _GenerateSourceLinkFile 4 calls 9 ms ApplyImplicitVersions 9 calls 9 ms CreateGeneratedAssemblyInfoInputsCacheFile 4 calls 9 ms _GetRestoreProjectStyle 10 calls 11 ms TranslateGitLabUrlsInSourceControlInformation 4 calls 11 ms NETStandardCompatError_Microsoft_Extensions_Configuration_Binder 5 calls 11 ms TranslateBitbucketGitUrlsInSourceControlInformation 4 calls 12 ms TranslateAzureReposGitUrlsInSourceControlInformation 4 calls 12 ms GetTargetFrameworksWithPlatformForSingleTargetFramework 4 calls 13 ms UpdateAspNetToFrameworkReference 8 calls 13 ms TranslateGitHubUrlsInSourceControlInformation 4 calls 13 ms _CreateAppHost 1 calls 13 ms GenerateFSharpTextResources 3 calls 14 ms _GenerateProjectRestoreGraphPerFramework 5 calls 15 ms _GetRestoreSettingsAllFrameworks 1 calls 16 ms CollectPackageReferences 10 calls 16 ms _InitializeGitHubSourceLinkUrl 12 calls 16 ms ResolveFrameworkReferences 4 calls 16 ms _CleanGetCurrentAndPriorFileWrites 4 calls 17 ms GetCopyToOutputDirectoryItems 4 calls 17 ms _InitializeAzureReposGitSourceLinkUrl 12 calls 18 ms _GenerateRestoreProjectPathItemsPerFramework 5 calls 18 ms _ComputeTargetFrameworkItems 1 calls 19 ms _InitializeGitLabSourceLinkUrl 12 calls 21 ms RedirectTPReferenceToNewRedistributableLocation 3 calls 25 ms SetEmbeddedFilesFromSourceControlManagerUntrackedFiles 4 calls 25 ms ResolveTargetingPackAssets 4 calls 29 ms GenerateBuildRuntimeConfigurationFiles 2 calls 32 ms CopyFilesToOutputDirectory 4 calls 32 ms RedirectFSharpCoreReferenceToNewRedistributableLocation 3 calls 34 ms _CopyFilesMarkedCopyLocal 2 calls 36 ms _InitializeBitbucketGitSourceLinkUrl 12 calls 42 ms CoreGenerateAssemblyInfo 4 calls 50 ms _FilterRestoreGraphProjectInputItems 1 calls 50 ms _GenerateProjectRestoreGraphAllFrameworks 1 calls 51 ms _HandlePackageFileConflicts 4 calls 51 ms _GetRestoreSettings 4 calls 75 ms InitializeSourceControlInformationFromSourceControlManager 4 calls 93 ms FindReferenceAssembliesForReferences 4 calls 104 ms ProcessFrameworkReferences 8 calls 124 ms GenerateBuildDependencyFile 4 calls 126 ms _GenerateRestoreProjectPathItemsAllFrameworks 1 calls 127 ms ResolveAssemblyReferences 4 calls 143 ms PaketRestore 10 calls 153 ms ResolvePackageAssets 4 calls 191 ms GetTargetFrameworksWithPlatformFromInnerBuilds 1 calls 194 ms _GenerateRestoreGraph 1 calls 344 ms GenerateCoverageResult 1 calls 425 ms Restore 1 calls 621 ms _GetProjectReferenceTargetFrameworkProperties 4 calls 757 ms _GetAllRestoreProjectPathItems 1 calls 953 ms _GenerateRestoreProjectPathWalk 4 calls 16941 ms ResolveProjectReferences 4 calls 17165 ms BuildProject 1 calls 17510 ms CoreCompile 4 calls 366551 ms InstrumentModules 1 calls 385287 ms _VSTestConsole 1 calls 385289 ms VSTest 1 calls Task Performance Summary: 1 ms VSTestLogsTask 2 calls 1 ms GetReferenceAssemblyPaths 1 calls 1 ms Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots 1 calls 1 ms NuGetMessageTask 1 calls 1 ms AssignCulture 4 calls 1 ms GetAssemblyVersion 4 calls 1 ms GenerateMSBuildEditorConfig 1 calls 1 ms GetGlobalPropertyValueTask 1 calls 1 ms ProtoToolsPlatform 1 calls 1 ms Delete 4 calls 1 ms ValidateExecutableReferences 3 calls 1 ms GetRestorePackageDownloadsTask 5 calls 1 ms SetRidAgnosticValueForProjects 4 calls 1 ms WarnForInvalidProjectsTask 1 calls 1 ms GetRestoreFrameworkReferencesTask 5 calls 1 ms FindAppConfigFile 4 calls 1 ms CombineXmlElements 3 calls 2 ms CheckForUnsupportedWinMDReferences 4 calls 2 ms Microsoft.SourceLink.Common.SourceLinkHasSingleProvider 4 calls 2 ms ResolveFrameworkReferences 4 calls 2 ms MapSourceRoots 3 calls 2 ms CreateProperty 10 calls 2 ms AllowEmptyTelemetry 5 calls 2 ms GetRestoreProjectReferencesTask 5 calls 2 ms GetRestoreDotnetCliToolsTask 4 calls 2 ms Touch 3 calls 2 ms CheckForDuplicateFrameworkReferences 8 calls 2 ms FSharpEmbedResourceText 3 calls 2 ms AssignProjectConfiguration 2 calls 2 ms FSharpEmbedResXSource 3 calls 2 ms GetProjectTargetFrameworksTask 4 calls 3 ms ProtoCompilerOutputs 1 calls 3 ms JoinItems 4 calls 3 ms ProtoReadDependencies 1 calls 3 ms CheckForImplicitPackageReferenceOverrides 9 calls 4 ms ApplyImplicitVersions 9 calls 4 ms GetRestorePackageReferencesTask 5 calls 4 ms AssignTargetPath 24 calls 4 ms CheckForDuplicateItems 12 calls 4 ms Message 46 calls 5 ms CheckIfPackageReferenceShouldBeFrameworkReference 16 calls 5 ms Hash 10 calls 5 ms GetRestoreProjectStyleTask 10 calls 5 ms GenerateGlobalUsings 1 calls 5 ms ResolveRuntimePackAssets 1 calls 5 ms RemoveDuplicates 19 calls 6 ms GetFrameworkPath 4 calls 6 ms ConvertToAbsolutePath 13 calls 7 ms CopyRefAssembly 4 calls 7 ms Microsoft.SourceLink.Common.GenerateSourceLinkFile 4 calls 7 ms Microsoft.SourceLink.GitLab.TranslateRepositoryUrls 4 calls 7 ms FindUnderPath 22 calls 7 ms CheckForDuplicateNuGetItemsTask 20 calls 7 ms Microsoft.SourceLink.AzureRepos.Git.TranslateRepositoryUrls 4 calls 7 ms Microsoft.SourceLink.Bitbucket.Git.TranslateRepositoryUrls 4 calls 8 ms WriteLinesToFile 12 calls 8 ms MakeDir 10 calls 8 ms ResolveAppHosts 8 calls 9 ms Microsoft.SourceLink.GitHub.TranslateRepositoryUrls 4 calls 9 ms CombineTargetFrameworkInfoProperties 4 calls 10 ms GetPackageDirectory 40 calls 10 ms ReadLinesFromFile 25 calls 12 ms CreateAppHost 1 calls 13 ms Microsoft.SourceLink.GitHub.GetSourceLinkUrl 12 calls 14 ms Microsoft.SourceLink.AzureRepos.Git.GetSourceLinkUrl 12 calls 15 ms Microsoft.SourceLink.Bitbucket.Git.GetSourceLinkUrl 12 calls 16 ms Microsoft.SourceLink.GitLab.GetSourceLinkUrl 12 calls 18 ms GetFileHash 10 calls 23 ms ResolveTargetingPackAssets 4 calls 23 ms Microsoft.Build.Tasks.Git.GetUntrackedFiles 4 calls 28 ms GenerateRuntimeConfigurationFiles 2 calls 31 ms GetReferenceNearestTargetFrameworkTask 3 calls 37 ms ResolvePackageFileConflicts 4 calls 39 ms WriteCodeFragment 3 calls 50 ms GetRestoreSettingsTask 4 calls 52 ms Copy 14 calls 72 ms Microsoft.Build.Tasks.Git.LocateRepository 4 calls 85 ms ProcessFrameworkReferences 8 calls 120 ms GenerateDepsFile 3 calls 123 ms ResolveAssemblyReference 4 calls 145 ms ResolvePackageAssets 4 calls 343 ms Coverlet.MSbuild.Tasks.CoverageResultTask 1 calls 424 ms RestoreTask 1 calls 1569 ms VSTestTask 1 calls 2038 ms Csc 1 calls 15464 ms Fsc 3 calls 36938 ms MSBuild 34 calls 366550 ms Coverlet.MSbuild.Tasks.InstrumentationTask 1 calls 769021 ms CallTarget 12 calls Configuration (please complete the following information):
Please provide more information on your .NET configuration:
* coverlet.msbuild - 6.0
* problem appearing with: dotnet sdk 8.0.200 / dotnet runtime 8.0.2
* previously worked with dotnet sdk 8.0.102 / dotnet runtime 8.0.1
* Windows and Linux
* x64
* It seems to be linked to dotnet 8.0.200
Additional context
The only specific thing in the test dependency is a few methods that can be highly inlined at compilation (using F# inline keyword) and can be large. Other projects don't seem to be as much impacted.