dotnet / dotnet/msbuild

GetCopyToOutputDirectoryItems perf

Open
#6,606 12 comments 1 reaction 0 assignees View on GitHub
Area: Performance closed-by-bot needs-design needs-more-info stale
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### 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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.