Optimize the memory footprint of MapMakerInternalMap
entries by special-casing linked entries.
#6197
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.
Optimize the memory footprint of
MapMakerInternalMap
entries by special-casing linked entries.The first entry in each bucket does not need a
next
field because it will only ever be the tail of the bucket's linked list. BecauseMapMakerInternalMap
uses a load factor of 0.75, we can expect that most entries are tails, so long as the hash function is good.For the common use case of a weak interner with compressed OOPs, omitting the
next
field reduces the shallow heap ofWeakKeyDummyValueEntry
from 40 bytes to 32 bytes.RELNOTES=Memory optimizations for
Interner
andMapMaker