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

Glob pattern matching improvements for netcore/CPS (~1s during solution load of 400 projects) #6069

Closed
arkalyanms opened this issue Jan 22, 2021 · 3 comments · Fixed by #6151

Comments

@arkalyanms
Copy link
Member

arkalyanms commented Jan 22, 2021

Child of #6034.

Globs were not a hot path before with netframework, but with CPS using globs, the pattern matching can be optimized, say for example by extension first before groveling through disk.

Below is the default set of blobs from CPS/netcore that comes with every project:

glob excludedPatterns
**/*.cs **/*.vssscc, obj\/**, **/*.sln, **/*.*proj, **/*.user, **/.*/**, bin\/**, bin\Debug\/**, obj\Debug\/**
**/*.resx **/*.vssscc, obj\/**, **/*.sln, **/*.*proj, **/*.user, **/.*/**, bin\/**, bin\Debug\/**, obj\Debug\/**
**/* **/*.vssscc, obj\/**, **/*.sln, **/*.*proj, **/*.user, **/.*/**, **/*.resx, bin\/**, bin\Debug\/**, **/*.cs, obj\Debug\/**
@arkalyanms arkalyanms added performance needs-triage Have yet to determine what bucket this goes in. labels Jan 22, 2021
@AR-May AR-May added Performance-Scenario-Solution-Open This issue affects solution open performance. and removed needs-triage Have yet to determine what bucket this goes in. labels Jan 28, 2021
@ladipro ladipro added this to To Do in Perf sprint Feb 1st - Feb 14th 2021 via automation Feb 1, 2021
@ladipro ladipro self-assigned this Feb 1, 2021
@ladipro
Copy link
Member

ladipro commented Feb 9, 2021

Observation: We are evaluating globs even if the corresponding item type is not used. The None items declared in the SDK are a good example.

@drewnoakes
Copy link
Member

@ladipro None items are used by the Project System. Removing a text file from None causes it to disappear in Solution Explorer, for example.

@ladipro
Copy link
Member

ladipro commented Feb 10, 2021

@drewnoakes thank you, that makes sense. Although I still wonder if we can avoid doing this work when building on the command line with dotnet build.

@ladipro ladipro moved this from To Do to In Progress in Perf sprint Feb 1st - Feb 14th 2021 Feb 15, 2021
@ladipro ladipro removed this from In Progress in Perf sprint Feb 1st - Feb 14th 2021 Feb 15, 2021
@ladipro ladipro added the size:3 label Feb 15, 2021
@ladipro ladipro moved this from In Progress to Done in Perf sprint Feb 15th - Feb 28th 2021 Feb 24, 2021
@ladipro ladipro added this to the MSBuild 16.10 milestone Dec 8, 2021
@AR-May AR-May added the triaged label Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

4 participants