Skip to content

GetCopyToOutputDirectoryItems perf #6606

Open
@rokonec

Description

@rokonec

Issue Description

Some build perf for a solution with only vc projects which don’t copy anything to the output dir and noticed that GetCopyToOutputDirectoryItems target time is pretty big without doing any actual copying.

Steps to Reproduce

Get \olgaark22\public\Build\Generated_250_250_250_5P2P.zip and run msbuild /m:10 /v:q /bl:Base_M010_MP010.binlog

Data

282473 ms  d:\olgaark\Generated_250_250_250_5P2P\gensln.sln   1 calls

Target Performance Summary:
122175 ms _GetCopyToOutputDirectoryItemsFromTransitiveProjectReferences 250 calls
122392 ms GetCopyToOutputDirectoryItems 250 calls
127669 ms GetReferencedVCProjectsInfo 250 calls
282461 ms Build 251 calls
425728 ms Link 250 calls
2058851 ms ClCompile 250 calls
34881129 ms ResolveProjectReferences 250 calls

Task Performance Summary:
1088 ms GenerateDesktopDeployRecipe 250 calls
122331 ms CallTarget 500 calls
416491 ms Link 250 calls
2048743 ms CL 250 calls
35412917 ms MSBuild 995 calls

Analysis

Hypothesis is that GetCopyToOutputDirectoryItems which is supposed to run on particular node is blocked by some other
build requests which have started on that node meanwhile.

Versions & Configurations

MSBuild version = "16.10.0-preview-21227-06+1d1fec7c4"

Regression?

Most probably not a regression.

Attach a binlog

See repro.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Performance-Scenario-BuildThis issue affects build performance.closed-by-botClosed due to lack of activityneeds-designRequires discussion with the dev team before attempting a fix.needs-more-infoIssues that need more info to continue investigation.performancestaleFor issues that haven't had activity in some time.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions