Commit graph

7 commits

Author SHA1 Message Date
Andrew Stanton-Nurse
ef0ca39da1 Memory usage improvements in build (#2626)
* Use a WorkspaceContext in dotnet-build to cache project data across
multiple compilations in a single build action
* Dramatically reduce string and object duplication by introducing a
"Symbol Table" that shares instances of NuGetVersion, NuGetFramework,
VersionRange and string across multiple lock-file parses

Test Results:
* Testing was done by compiling Microsoft.AspNetCore.Mvc (and it's
dependencies) and taking memory snapshots after each compilation in
dotMemory
* We used to allocate ~3MB and deallocate ~2.5MB on EACH compilation in
a single build action. This has been reduced to ~120KB
allocated/deallocated
* After introducing WorkspaceContext, total memory usage spiked from 6MB
across the whole build action to about 13MB, introducing the symbol
table dropped it back to about 5-6MB.
2016-04-22 15:01:56 -07:00
Troy Dai
e176c1d3b9 Remove fragment file's involvement in design time scenarios 2016-03-31 13:57:36 -07:00
Mihai Codoban
b7ca1d14bd Distinguish between the msbuild project path and csproj file path 2016-03-30 19:24:43 -07:00
Mihai Codoban
2e78b9ae60 Revert "MSBuildProjectDescriptions has dedicated property for the csproj path"
This reverts commit a95e20d96480dac3010c8403e04bd716fba2cc5b.
2016-03-30 19:24:43 -07:00
Mihai Codoban
9cc3d088f0 MSBuildProjectDescriptions has dedicated property for the csproj path 2016-03-30 19:24:43 -07:00
Mihai Codoban
90240a431b Compute msbuild project path relative to root project path 2016-03-30 19:24:43 -07:00
Mihai Codoban
ca2707292e Add MSBuildProjectDescription 2016-03-30 19:24:43 -07:00