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.
This is a forward approach to interning. Specifically
Dependency
andPackageId
store their names asInternedString
s and leave that value interned as long as possible. The alternative is to make a newinterned_name
function. The advantage of this approach is that a number of places in the code are doingdeb.name() == pid.name()
and are now using the fast pointer compare instead of the string compare, without the code needing to change. The disadvantage is that lots of places need to callderef
with&*
to convert to an&str
and sum need to use.to_inner()
to get a&'static str
.In a test on #4810 (comment)
Before we got to 10000000 ticks in ~48 sec
After we got to 10000000 ticks in ~44 sec