[GR-53552] Remove Future from ImageLayerLoader #8981
Merged
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.
The types are now not all loaded by default before the analysis.
They can now be loaded on demand using
ImageLayerLoader.getAnalysisType(Integer tid)
.Similarly, all the constants are now not created by default and they are only created when needed.
Now, instead of creating all the constants when loading the layer, only the data needed to detect the hosted object that need to be re-linked is stored.
Then, the base layer constant is only created when this object is queried in the Shadow Heap. Its child constants are only created when they are accessed, in the same way the Shadow Heap does in the default build.
While this PR does not reduce the size of the application layer (the application heap size is the same), the build process is around 20% faster (performance on local machine).