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

Calculating $(ManagedXamlResourcesDirectory) is taking ~2% of evaluation for a solution-wide design-time build #2823

Closed
davkean opened this issue Sep 14, 2017 · 3 comments
Assignees
Labels
Tenet-Performance This issue affects the "Performance" tenet.
Milestone

Comments

@davkean
Copy link
Member

davkean commented Sep 14, 2017

From: dotnet/sdk#1586.

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%
Properties (Pass 1) Microsoft.Managed.DesignTime.targets 46 <ManagedXamlResourcesDirectory Condition="!Exists('$(ManagedXamlResourcesDirectory)')" >$(MSBuildThi... 118 1.9% 115 1.9% 223

https://github.com/dotnet/project-system/blob/master/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/DesignTimeTargets/Microsoft.Managed.DesignTime.targets#L46

@davkean davkean added the Tenet-Performance This issue affects the "Performance" tenet. label Sep 14, 2017
@davkean davkean changed the title Calculating ManagedXamlResourcesDirectory is taking ~2% of evaluation for a solution-wide design-time build Calculating $(ManagedXamlResourcesDirectory) is taking ~2% of evaluation for a solution-wide design-time build Sep 14, 2017
@nguerrera
Copy link
Contributor

Two thoughts on this if the binder rewrite gets punted:

  1. It might be sinplest if the project system just calculated the resource directory once and passed it in.

  2. Does $([MSBuild]::Add(0, $(Value))) help bind straight to integers? I've used a variant of that once in to force an arg to string.format to be treated as an int.

@davkean
Copy link
Member Author

davkean commented Sep 25, 2017

Good ideas, still trying to mash my binder changes in without a complete rewrite - which is proving to be difficult.

@davkean davkean self-assigned this Sep 25, 2017
@davkean davkean added this to the 15.5 milestone Sep 25, 2017
@davkean
Copy link
Member Author

davkean commented Oct 10, 2017

Going to dup this against: dotnet/msbuild#2217, ~50% of this cost is the exceptions.

@davkean davkean closed this as completed Oct 10, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tenet-Performance This issue affects the "Performance" tenet.
Projects
None yet
Development

No branches or pull requests

2 participants