HIR Item size reduction - #414
Open
thepowersgang wants to merge 3 commits into
Open
Conversation
…Item) instead of wrapping it This should reduce memory wasted with imports (which are very common)
- RcString is smaller inline (1 pointer vs 4 on amd64 linux) - MIR is cloned during monomorph, but the strings don't change, so using reference counting should be faster and lower memory.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Wrap individual items in
HIR::TypeItemandHIR::ValueIteminunique_ptrto save memory.Testing with
libcargoshows total memory usage afterExpand(i.e. after all dependent crates loaded) decreasing from 1540MiB to 1100MiB due to the large number ofImportvariants not wasting 100s of bytes each.Still working on some more minor space improvements (e.g. in MIR)