-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
[Experiment] Export generic instances from libstd. #68673
[Experiment] Export generic instances from libstd. #68673
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion |
☀️ Try build successful - checks-azure |
Queued f8a2991 with parent 212b2c7, future comparison URL. |
Finished benchmarking try commit f8a2991, comparison URL. |
This seems to negatively affect at least linker performance. |
Without actually understanding anything - it's interesting that [edit] - not entirely true, nvm |
ripgrep-opt clean incremental regresses by 1.9% (linker and some other things). cranelift-codegen-opt baseline incremental regresses by 1.2% (mostly LLVM). Both are "real" programs/libraries. |
Yes, it looks like this change causes quite a bit of overhead for loading the list of generic symbols available in the standard library. Small programs that then do not use any of these newly available symbols don't get a chance for amortizing that overhead.
I wouldn't rely too much on wall-time numbers when it comes to changes below 3%. They are rather noisy. I'm not quite sure how to proceed here. Those performance numbers clearly aren't a mandate to merge this |
I was looking at the instructions count. |
This should resolve issue #64140. However it is unclear if there are detrimental effects. Let's test if there are performance improvements to be had.
r? @ghost