BACKGROUND:
During performance optimization of Hypar, we've found that lambda cold start times are proportional to package size. Analysis of the build folder of Elements revealed that Microsoft.CodeAnalysis.CSharp and Microsoft.CodeAnalysis.CSharp.Scripting and their associated per-language files were adding significant size to the build output. These dependencies were only required for the ParametericProfile class which is the base class for all structural profiles.
DESCRIPTION:
This PR creates the Elements.Structure project which moves all structural profile factories and types to a separate project. It also removes the Textures folder as this is only used for testing. This reduces the build output size from 18mb to 7.2mb.
TESTING:
How should a reviewer observe the behavior desired by this pull request?
FUTURE WORK:
Existing projects using Elements will need to add a reference to Elements.Structure if they want to use structural profiles.
BACKGROUND: During performance optimization of Hypar, we've found that lambda cold start times are proportional to package size. Analysis of the build folder of Elements revealed that
Microsoft.CodeAnalysis.CSharp
andMicrosoft.CodeAnalysis.CSharp.Scripting
and their associated per-language files were adding significant size to the build output. These dependencies were only required for theParametericProfile
class which is the base class for all structural profiles.DESCRIPTION: This PR creates the
Elements.Structure
project which moves all structural profile factories and types to a separate project. It also removes theTextures
folder as this is only used for testing. This reduces the build output size from 18mb to 7.2mb.TESTING:
FUTURE WORK:
Elements
will need to add a reference toElements.Structure
if they want to use structural profiles.REQUIRED:
CHANGELOG.md
.This change is![Reviewable](https://reviewable.io/review_button.svg)