dotnet-installer/src/dotnet/commands/dotnet-projectmodel-server
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
..
Helpers Asset refactoring and content files 2016-02-23 08:34:38 -08:00
InternalModels Memory usage improvements in build (#2626) 2016-04-22 15:01:56 -07:00
Messengers Send an empty error message after global error is cleared 2016-03-09 08:15:18 -08:00
Models Use default version for unresolved MSBuild reference 2016-04-05 08:32:58 -07:00
ConnectionContext.cs Everything in the same project 2016-02-01 14:56:32 -08:00
MessageTypes.cs Everything in the same project 2016-02-01 14:56:32 -08:00
ProcessingQueue.cs Fix the exception throw during logging. 2016-02-04 22:58:58 -08:00
Program.cs Memory usage improvements in build (#2626) 2016-04-22 15:01:56 -07:00
ProjectManager.cs Memory usage improvements in build (#2626) 2016-04-22 15:01:56 -07:00
ProtocolManager.cs Everything in the same project 2016-02-01 14:56:32 -08:00