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

[Tracking] Overhead of evaluation is too high for design-time builds #1586

Closed
davkean opened this issue Sep 14, 2017 · 6 comments
Closed

[Tracking] Overhead of evaluation is too high for design-time builds #1586

davkean opened this issue Sep 14, 2017 · 6 comments
Assignees
Milestone

Comments

@davkean
Copy link
Member

davkean commented Sep 14, 2017

This is the evaluation equivalent of #1496.

This solution contains a mix of .NET Framework and .NET Standard projects with globs turned off.

Pass File Line # Expression Inc (ms) Inc (%) Exc (ms) Exc (%) # Bug
Total Evaluation 6159 100% 54 0.9%
Properties (Pass 1) 3312 53.8% 9 0.1%
ItemDefinitionGroup (Pass 2) 14 0.2% 2 0%
Items (Pass 3) 566 9.2% 24 0.4%
Lazy Items (Pass 3.1) 1826 29.6% 158 2.6%
UsingTasks (Pass 4) 59 1% 59 1%
Targets (Pass 5) 327 5.3% 208 3.4%
Lazy Items (Pass 3.1) NETStandard.Library.NETFramework.targets 3 <_NETStandardLibraryNETFrameworkReference Include="$(MSBuildThisFileDirectory)\ref\*.dll" Exclude="@... 596 9.7% 596 9.7% 126 Replaced by ImplicitlyExpandNETStandardFacades
Lazy Items (Pass 3.1) NETStandard.Library.NETFramework.targets 6 <_NETStandardLibraryNETFrameworkLib Include="$(MSBuildThisFileDirectory)\lib\*.dll" Exclude="@(_NETS... 547 8.9% 547 8.9% 126 Replaced by ImplicitlyExpandNETStandardFacades
Lazy Items (Pass 3.1) NETStandard.Library.targets 7 <Reference Condition="'$(_NetStandardLibraryRefPath)' != ''" Include="$(_NetStandardLibraryRefPath)*... 312 5.1% 279 4.5% 43 dotnet/standard#442
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 114 <Import Project="$(CommonTargetsPath)" /> 2078 33.7% 119 1.9% 223
Properties (Pass 1) Microsoft.Managed.DesignTime.targets 46 <ManagedXamlResourcesDirectory Condition="!Exists('$(ManagedXamlResourcesDirectory)')" >$(MSBuildThi... 118 1.9% 115 1.9% 223 dotnet/project-system#2823 dotnet/msbuild#2217
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 83 <FrameworkPathOverride Condition="'$(FrameworkPathOverride)' == ''" >$([Microsoft.Build.Utilities.To... 77 1.2% 76 1.2% 223 dotnet/msbuild#2518
Properties (Pass 1) Microsoft.CSharp.CurrentVersion.targets 27 <Import Project="$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.CSharp.targets\Import... 218 3.5% 66 1.1% 223
Properties (Pass 1) Microsoft.Common.props 77 <Import Project="$(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\... 106 1.7% 60 1% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 5821 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.targets\ImportAfte... 645 10.5% 57 0.9% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 92 <TargetPlatformSdkPath Condition="'$(TargetPlatformSdkPath)' == ''" >$([Microsoft.Build.Utilities.To... 54 0.9% 54 0.9% 223 dotnet/msbuild#2519
Properties (Pass 1) Microsoft.Common.props 78 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\Impo... 80 1.3% 48 0.8% 223
Lazy Items (Pass 3.1) Microsoft.Common.CurrentVersion.targets 369 <_DebugSymbolsOutputPath Include="@(_DebugSymbolsIntermediatePath-&gt;'$(OutDir)%(Filename)%(Extensi... 44 0.7% 44 0.7% 223 dotnet/msbuild#2520
Properties (Pass 1) Microsoft.NET.Build.Extensions.targets 18 <_TargetFrameworkVersionWithoutV Condition="$(TargetFrameworkVersion.StartsWith('v'))" >$(TargetFram... 45 0.7% 42 0.7% 223 #1587 dotnet/msbuild#2217
Properties (Pass 1) Microsoft.Common.props 63 <Import Project="$(MSBuildProjectExtensionsPath)$(MSBuildProjectFile).*.props" Condition="'$(ImportP... 182 3% 39 0.6% 223
Properties (Pass 1) Microsoft.Common.targets 127 <Import Project="$(MSBuildProjectExtensionsPath)$(MSBuildProjectFile).*.targets" Condition="'$(Impor... 243 4% 38 0.6% 223
Lazy Items (Pass 3.1) NETStandard.Library.targets 12 Condition="'%(FileName)' != 'netstandard'") 33 0.5% 33 0.5% 43 dotnet/standard#494
Properties (Pass 1) Microsoft.Common.props 28 <_DirectoryBuildPropsBasePath Condition="'$(_DirectoryBuildPropsBasePath)' == ''" >$([MSBuild]::GetD... 26 0.4% 26 0.4% 223 dotnet/msbuild#2521
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 99 <TargetPlatformDisplayName Condition="'$(TargetPlatformDisplayName)' == ''" >$([Microsoft.Build.Util... 25 0.4% 24 0.4% 223 dotnet/msbuild#2522 dotnet/msbuild#2519
Items (Pass 3) Microsoft.Managed.DesignTime.targets 98 <ItemGroup Condition="'$(DefineCommonManagedItemSchemas)' == 'true'" ><PropertyPageSchema Include="$... 81 1.3% 22 0.4% 223 dotnet/project-system#2825
Items (Pass 3) Microsoft.Common.CurrentVersion.targets 369 <_DebugSymbolsOutputPath Include="@(_DebugSymbolsIntermediatePath-&gt;'$(OutDir)%(Filename)%(Extensi... 22 0.4% 22 0.4% 223 dotnet/msbuild#2520
Properties (Pass 1) Microsoft.Common.targets 139 <_DirectoryBuildTargetsBasePath Condition="'$(_DirectoryBuildTargetsBasePath)' == ''" >$([MSBuild]::... 21 0.3% 21 0.3% 223 dotnet/msbuild#2521
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 91 <TargetPlatformSdkPath Condition="'$(TargetPlatformSdkPath)' == '' and '$(TargetPlatformIdentifier)'... 21 0.3% 19 0.3% 223 dotnet/msbuild#2519
Properties (Pass 1) Microsoft.NET.TargetFrameworkInference.targets 171 <PropertyGroup Condition="'$(AppendTargetFrameworkToOutputPath)' == 'true' and '$(TargetFramework)' ... 20 0.3% 19 0.3% 43
Properties (Pass 1) Microsoft.NET.Sdk.DefaultItems.targets 25 <PropertyGroup ><!-- Set DefaultItemExcludes property for items that should be excluded from the def... 20 0.3% 18 0.3% 43
Properties (Pass 1) Microsoft.NETFramework.CurrentVersion.targets 129 Condition="'$(ImportByWildcardAfterMicrosoftNetFrameworkTargets)' == 'true' and exists('C:\Program F... 36 0.6% 18 0.3% 1
Properties (Pass 1) Microsoft.CSharp.CurrentVersion.targets 37 <PropertyGroup ><MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProj... 29 0.5% 17 0.3% 223
Items (Pass 3) Microsoft.Managed.DesignTime.targets 70 <ProjectCapability Include="&#xD;&#xA; AssemblyReferences;&#xD;&#xA; ... 16 0.3% 16 0.3% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 1087 <PropertyGroup ><Framework40Dir>@(_TargetFramework40DirectoryItem)</Framework40Dir><Framework35Dir>@... 20 0.3% 15 0.2% 223
Properties (Pass 1) Microsoft.WorkflowBuildExtensions.targets 25 <Import Project="$(MSBuildFrameworkToolsPath)\Microsoft.WorkflowBuildExtensions.targets" Condition="... 90 1.5% 14 0.2% 180 dotnet/msbuild#2524
Properties (Pass 1) Microsoft.CSharp.Core.targets 322 <Import Project="$(CSharpCoreTargetsPath)" /> 15 0.2% 14 0.2% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 283 <TargetDir Condition="'$(OutDir)' != ''" >$([MSBuild]::Escape($([System.IO.Path]::GetFullPath($([Sy...` 14 0.2% 14 0.2% 223
Properties (Pass 1) Microsoft.WinFx.targets 12 <Import Project="$(MSBuildFrameworkToolsPath)\Microsoft.WinFx.targets" Condition="Exists('$(MSBuildF... 55 0.9% 14 0.2% 180 dotnet/msbuild#2524
Lazy Items (Pass 3.1) Microsoft.Common.CurrentVersion.targets 5431 <DebugSymbolsProjectOutputGroupOutput Include="@(_DebugSymbolsIntermediatePath-&gt;'%(FullPath)')" >... 13 0.2% 13 0.2% 223
Properties (Pass 1) Microsoft.CSharp.CurrentVersion.targets 168 <Import Project="$(CSharpTargetsPath)" /> 2732 44.4% 13 0.2% 223
Properties (Pass 1) Microsoft.CodeAnalysis.targets ~93 <PropertyGroup ><!-- FxCopDir must be considered for backwards compatibility with the Visual Studio ... 87 1.4% 12 0.2% 223 dotnet/roslyn#22110
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 3182 <TargetFrameworkMonikerAssemblyAttributesPath Condition="'$(TargetFrameworkMonikerAssemblyAttributes... 12 0.2% 12 0.2% 223
Properties (Pass 1) Microsoft.CodeAnalysis.targets 5774 <Import Project="$(CodeAnalysisTargets)" Condition="Exists('$(CodeAnalysisTargets)')" /> 215 3.5% 12 0.2% 223 dotnet/roslyn#22111
Properties (Pass 1) Microsoft.NET.Build.Extensions.targets 15 <MSBuildAllProjects >$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> 11 0.2% 11 0.2% 223
Properties (Pass 1) Microsoft.Common.props 19 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="... 213 3.5% 11 0.2% 113
Items (Pass 3) Microsoft.Common.CurrentVersion.targets 354 <ItemGroup ><IntermediateAssembly Include="$(IntermediateOutputPath)$(TargetName)$(TargetExt)" /><Fi... 31 0.5% 11 0.2% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 5817 <Import Project="$(MSBuildToolsPath)\Microsoft.Data.Entity.targets" Condition="'$(TargetFrameworkIde... 13 0.2% 11 0.2% 223 dotnet/msbuild#2524
Items (Pass 3) Microsoft.Common.CurrentVersion.targets 357 <CopyUpToDateMarker Include="$([MSBuild]::NormalizePath('$(MSBuildProjectDirectory)', '$(Intermediat... 10 0.2% 10 0.2% 223
Properties (Pass 1) Microsoft.PackageDependencyResolution.targets 23 <MSBuildAllProjects >$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> 10 0.2% 10 0.2% 43
Items (Pass 3) Microsoft.Managed.DesignTime.targets 126 <PropertyPageSchema Include="$(ManagedXamlResourcesDirectory)EmbeddedResource.xaml" ><Context>File;B... 10 0.2% 10 0.2% 223
Properties (Pass 1) Microsoft.QualityTools.Testing.Fakes.targets 10 <PropertyGroup ><FakesBinPath Condition="$(FakesBinPath) == ''">$(MSBuildProjectDirectory)</FakesBin... 29 0.5% 10 0.2% 223
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 851 <PropertyGroup ><_ProjectDefaultTargets Condition="'$(MSBuildProjectDefaultTargets)' != ''">$(MSBuil... 15 0.2% 10 0.2% 223
Properties (Pass 1) Microsoft.Xaml.targets 19 <Import Project="$(MSBuildFrameworkToolsPath)\Microsoft.Xaml.targets" Condition="Exists('$(MSBuildFr... 107 1.7% 10 0.2% 180 dotnet/msbuild#2524
Items (Pass 3) Microsoft.Managed.DesignTime.targets 230 <PropertyPageSchema Include="$(ManagedXamlResourcesDirectory)DotNetCliToolReference.xaml" ><Context>... 10 0.2% 10 0.2% 223
Properties (Pass 1) Projectcsproj.nuget.g.props 16 Condition="Exists('$(NuGetPackageRoot)netstandard.library.netframework\2.0.0-preview2-25405-01\build... 10 0.2% 10 0.2% 1
Properties (Pass 1) Microsoft.Common.CurrentVersion.targets 25 Condition="'$(ImportUserLocationsByWildcardAfterMicrosoftCommonTargets)' == ''") 10 0.2% 10 0.2% 223
Properties (Pass 1) Project.csproj 0 <Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" /> 35 0.6% 9 0.2% 1
Properties (Pass 1) Microsoft.CodeAnalysis.targets 24 <PropertyGroup ><CodeAnalysisStaticAnalysisDirectory Condition="'$(CodeAnalysisStaticAnalysisDirecto... 60 1% 9 0.2% 223 dotnet/roslyn#22110
Items (Pass 3) Microsoft.Common.CurrentVersion.targets 368 Condition="'$(OutputType)' != 'winmdobj' and '@(_DebugSymbolsIntermediatePath)' == ''") 9 0.2% 9 0.2% 223
Properties (Pass 1) Microsoft.CSharp.CurrentVersion.targets 332 <Import Project="$(MSBuildToolsPath)\Microsoft.ServiceModel.targets" Condition="('$(TargetFrameworkV... 17 0.3% 3 0% 223 dotnet/msbuild#2524

Evaluation Time (Ordered by Exclusive)
Evaluation Time (Ordered by Inclusive)

@davkean davkean self-assigned this Sep 14, 2017
This was referenced Sep 14, 2017
@ericstj
Copy link
Member

ericstj commented Sep 14, 2017

@davkean who is pulling in NETStandard.Library.NETFramework.targets? That package (NETStandard.Library.NETFramework) never shipped and was moved into SDK targets. The shipping targets are named Microsoft.NET.Build.Extensions.NETFramework.targets and are part of this repo here: https://github.com/dotnet/sdk/blob/master/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets

They have a similar pattern of evaluation but do it inside a target.

@davkean
Copy link
Member Author

davkean commented Sep 19, 2017

@ericstj Those targets come from this package: https://www.nuget.org/packages/NETStandard.Library.NETFramework/. How is the replacement picked up?

@ericstj
Copy link
Member

ericstj commented Sep 19, 2017

That package is pre-release and should never be referenced; the tooling never referenced it. The official support comes via targets I mentioned previously which are installed in to Microsoft.Common.targets/ImportAfter folder.

@dsplaisted
Copy link
Member

I've pushed the evaluation profiler into an experimental branch of MSBuild and written up instructions on how to build and use it: https://github.com/Microsoft/msbuild/blob/exp/EvaluationProfiler/documentation/evaluation-profiling.md

@nguerrera
Copy link
Contributor

This solution contains a mix of .NET Framework and .NET Standard projects with globs turned off.

@davkean Can you share the solution and the invocation used to produce this table? Looking at #1587 now but I can't manage to get it to rank as high as here.

@livarcocc livarcocc added this to the 2.1.3xx milestone Feb 9, 2018
@nguerrera
Copy link
Contributor

Closing because there are no linked SDK issues remaining.

GangWang01 pushed a commit to GangWang01/sdk that referenced this issue Jun 7, 2022
Remove dotnet-xunit from 2.0 and 1.x project templates
GangWang01 pushed a commit to GangWang01/sdk that referenced this issue Jul 11, 2022
Remove dotnet-xunit from 2.0 and 1.x project templates
JL03-Yue pushed a commit that referenced this issue Mar 19, 2024
…e/6.x

Merge release/6.0.3xx to release/6.x
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants