-
Notifications
You must be signed in to change notification settings - Fork 10.6k
[DON'T MERGE][stdlib] Make _mixInt and _combineHashValues non-inlineable #14466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@swift-ci please benchmark |
Build comment file:Optimized (O)Regression (26)
Improvement (6)
No Changes (328)
Unoptimized (Onone)Regression (37)
Improvement (6)
No Changes (317)
Hardware Overview |
|
Actually a pretty mild regression, hmm. |
|
🤔 |
|
On closer look, this only matches #14442 with multi-field keys; evidently we don't have a benchmark for those yet, just |
aea1584 to
1def9ea
Compare
|
@swift-ci please benchmark |
Build comment file:Optimized (O)Regression (15)
Improvement (5)
No Changes (342)
Unoptimized (Onone)Regression (38)
Improvement (5)
No Changes (319)
Hardware Overview |
|
That's more like it! The Adding |
|
@swift-ci please benchmark |
Build comment file:Optimized (O)Regression (10)
Improvement (7)
No Changes (345)
Unoptimized (Onone)Regression (6)
Improvement (10)
No Changes (346)
Hardware Overview |
|
Yay, it works! Now we just need to find out how to do the same sort of thing for #14442. E.g., making the hash state update nonmutating would let us apply the same |
|
(Closing this, as the experiment is complete.) |
This is just an investigation of how a resilient hash function would affect
Dictionary/Setperformance.Based on my own tests, I expect this minimal change will have performance comparable to #14442.