-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[DNM][stdlib][ABI] Make default implementation for _rawHashValue(seed:) non-inlinable #20180
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
…paque Allowing inlinability prevents types from customizing this in a way that changes the result.
…lt _rawHashValue(seed:)
This change might have interesting performance effects. @swift-ci please benchmark |
@swift-ci test |
Build comment file:Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Code size: Swift libraries
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR. Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein). Hardware Overview
|
That's not great, but it's what it is. The last commit combines this with a resilient @swift-ci please benchmark |
Build comment file:Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -Onone
Code size: Swift libraries
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR. Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein). Hardware Overview
|
Hm. I did not expect to see such code size regressions. |
We should retest with the new String. I feel like taking the first one is OK (most of the regressions are just reclaiming perf wins vs 4.2), but not the resilient one due to the code size regressions. |
@lorentey Has this ship sailed? Or alternatively, did this land through another channel? |
Closing -- this ship has sailed a long time ago. |
Baking the default implementation into binaries prevents types from diverging top-level hashing from
hash(into:)
in future releases.