-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Optimize Write::write_fmt for Vec<u8>/Sink #37850
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
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @aturon (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Do you know roughly why this is an improvement? |
Hm yeah I'm also a little baffled on how this could result in a speedup. The |
Looking at IR diff, the significant difference looks like https://gist.github.com/sinkuu/9f6c5e34e05c088e84c7330e2b146585 Tried:
|
It's a very small program (the benchmark runner), so whole program optimization effects could cause this. |
Why do we particularly care about the performance of Sink? |
I tried to remove unnecessary error handling in Since the optimizer seems to be able to do that (and the cause of performance gain was inlining), this PR may not make much sense. |
A small optimization for formatted writing to
Vec<u8>
. This doesn't fix the issue, but benchmarks for #10761 (comment) :