Uh oh!
There was an error while loading. Please reload this page.
Optimized string FromIterator + Extend impls - #56548
Merged
Merged
Conversation
rust-highfive
commented
Dec 5, 2018
Contributor
r? @sfackler (rust_highfive has picked a reviewer for you, use r? to override) |
Lucretiel
commented
Dec 5, 2018
ContributorAuthor
Fixes #51541 |
This comment has been minimized.
This comment has been minimized.
Lucretielforce-pushed
the
string-extend-optimize
branch
from
December 5, 2018 22:51
f4eba91 to
180dcc3Compare
This comment has been minimized.
This comment has been minimized.
sfackler
reviewed
Dec 6, 2018
Uh oh!
There was an error while loading. Please reload this page.
sfackler
commented
Dec 6, 2018
Member
LGTM other than a quick explanatory comment! |
sfackler
commented
Dec 6, 2018
Member
@bors r+ rollup Thanks! |
bors
commented
Dec 6, 2018
Collaborator
📌 Commit 811a2bf has been approved by |
emilyalbini added a commit
to emilyalbini/rust
that referenced
this pull request
Dec 6, 2018
…=sfackler Optimized string FromIterator + Extend impls I noticed that there was a lost opportunity to reuse string buffers in `FromIterator<String>` and `FromIterator<Cow<str>>`; updated the implementations to use these. In practice this translates to at least one fewer allocation when using these APIs. Additionally, rewrote `Extend` implementations to use `iter.for_each`, which (supposedly) helps the compiler optimize those loops (because iterator adapters are encouraged to provide optimized implementations of `fold` and `try_fold`.
bors added a commit
that referenced
this pull request
Dec 6, 2018
Rollup of 11 pull requests Successful merges: - #56315 (Rustdoc inline macro reexport) - #56332 ([rustdoc] Specific crate search) - #56362 (Stabilise exhaustive integer patterns) - #56426 (libsyntax_pos: A few tweaks) - #56441 (rustbuild: Fix issues with compiler docs) - #56446 (pass the parameter environment to `traits::find_associated_item`) - #56500 (cleanup: remove static lifetimes from consts) - #56525 (Avoid extra copy and syscall in std::env::current_exe) - #56528 (Remove unused dependency (rustc_lint -> rustc_mir)) - #56548 (Optimized string FromIterator + Extend impls) - #56553 (Don't print the profiling summary to stdout when -Zprofile-json is set) Failed merges: r? @ghost
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I noticed that there was a lost opportunity to reuse string buffers in
FromIterator<String>andFromIterator<Cow<str>>; updated the implementations to use these. In practice this translates to at least one fewer allocation when using these APIs.Additionally, rewrote
Extendimplementations to useiter.for_each, which (supposedly) helps the compiler optimize those loops (because iterator adapters are encouraged to provide optimized implementations offoldandtry_fold.