Separate structural profiles to reduce package size. #1075
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.CSharpandMicrosoft.CodeAnalysis.CSharp.Scriptingand their associated per-language files were adding significant size to the build output. These dependencies were only required for theParametericProfileclass which is the base class for all structural profiles.DESCRIPTION:
This PR creates the
Elements.Structureproject which moves all structural profile factories and types to a separate project. It also removes theTexturesfolder as this is only used for testing. This reduces the build output size from 18mb to 7.2mb.TESTING:
FUTURE WORK:
Elementswill need to add a reference toElements.Structureif they want to use structural profiles.REQUIRED:
CHANGELOG.md.This change is