ef0ca39da1
* 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.
35 lines
811 B
JSON
35 lines
811 B
JSON
{
|
|
"version": "1.0.0-*",
|
|
"dependencies": {
|
|
"Microsoft.NETCore.App": {
|
|
"type": "platform",
|
|
"version": "1.0.0-rc2-*"
|
|
},
|
|
"Newtonsoft.Json": "7.0.1",
|
|
"dotnet": {
|
|
"target": "project"
|
|
},
|
|
"Microsoft.Win32.Registry": {
|
|
"version": "4.0.0-rc2-24022",
|
|
"exclude": "Compile"
|
|
},
|
|
"xunit": "2.1.0",
|
|
"dotnet-test-xunit": "1.0.0-dev-140469-38",
|
|
"moq.netcore": "4.4.0-beta8",
|
|
"FluentAssertions": "4.2.2"
|
|
},
|
|
"frameworks": {
|
|
"netcoreapp1.0": {
|
|
"imports": [
|
|
"netstandardapp1.5",
|
|
"dotnet5.4",
|
|
"portable-net451+win8"
|
|
]
|
|
}
|
|
},
|
|
"content": [
|
|
"../../TestAssets/TestProjects/ProjectWithTests/project.json",
|
|
"../../TestAssets/TestProjects/ProjectWithTests/project.lock.json"
|
|
],
|
|
"testRunner": "xunit"
|
|
}
|