Comments (6)
This is great feedback. Thanks. Yes, I can think of some ways we can improve this.
from nerdbank.gitversioning.
I'm working on this now, but it would be very helpful if you could collect perf traces of your build so that I can be sure I'm making the changes that will speed up your build. Can you please use PerfView to collect those traces?
After downloading it:
- click Collect-> Collect (it may restart to elevate, then repeat this step)
- Check the 'Zip' option
- Expand "Advanced Options"
- Check the "No V3.X NGEN Symbols" option
- Make sure Current Dir and Data File are set to where you want to place the trace file(s).
- Prepare to kick off a build that will demonstrate the problem. Arrange for the build you're measuring to last 10-20 seconds (by picking which projects to build, or using an incremental build).
- Click Start Collection, and immediately kick off your build.
- When your build is done, stop collection in PerfView.
- It could take 30 seconds or even minutes to wrap up its work. Then send me the .zip file it creates.
This will give a very clear and reliable picture of where the time in your build goes, and in particular, I can look at the GetBuildVersion task time to make sure that all the expensive operations get saved and reused across all projects in the future.
from nerdbank.gitversioning.
I've added two traces. The AffectedAllProjects was a solution build (not re-build) which touched all 38 projects. The AffectedFiveProjects was after I changed one line of code and did a build of the top-level project file.
from nerdbank.gitversioning.
Thanks. I'm taking a look now.
from nerdbank.gitversioning.
@azeno: can you please try this fix to see if it helps your build?
NuGet package source: https://ci.appveyor.com/nuget/nerdbank-gitversioning
Version to upgrade to: 1.1.56-rc-gcfa44ca7d1
If the perf doesn't seem satisfactory even with these changes, please supply a fresh PerfView ETL trace with this updated version so I can get a look at what remains to be fixed.
from nerdbank.gitversioning.
Works like a charm! Thank you!
from nerdbank.gitversioning.
Related Issues (20)
- How to treat one lib in multi-lib repo differently (always marked as preview)? HOT 5
- Incrementing a local build? HOT 1
- <AssemblyFileVersion> property is empty HOT 2
- Add current branch to ThisAssembly HOT 1
- WPF generates Assembly Version Info twice HOT 6
- [Question] How can I publish nightly version e.g. 4.8.0-nightly.{height}.{ciJobNumber}? HOT 2
- [Question] Using height only in branches that don't match publicReleaseRefSpec criteria HOT 1
- Simulate the future version HOT 3
- Consider inverting `Language` property special-casing HOT 2
- Compile errors in an F# project when setting NBGV_EmitThisAssemblyClass to false HOT 6
- Versioning flow HOT 7
- Is there a way to configure to not create AssemblyFileVersionAttribute HOT 4
- Error in ManagedGit when dealing with non-packed lightweight tags HOT 5
- PrivateP2PCaching.proj' could not be found HOT 4
- nbgv tool doesn't support Central Package Management HOT 6
- Warning about PrivateP2PCaching.proj HOT 5
- Support using tags as only source for version HOT 1
- Inherit with override for pathFilter HOT 2
- Version of a Project Reference defaults to 1.0.0.0 in deps.json file
- [Feature request] Support partial / blobless clones HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nerdbank.gitversioning.