Fix slow PEX boot time when there are many extras. #1929
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.
Large extras sets lead to an exponentially scaled collection of
fingerprinted distribution objects that need to be de-duped. The hash
codes calculated in doing so are expensive when the distribution
metadata contains a large number of requirements. Cache these hash codes
to improve boot time by two orders of magnitude.
In order to enable ergonomic caching of hash codes via attrs built in
feature for doing this, some new plumbing is added to the third party
vendored importer plumbing.
Fixes #1928