-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Perf regression in Vec<u8> Write impl? #24095
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
I think this is the same cause as #24014, at least the performance of Nominating for 1.0 as this is quite a critical iterator to have perform well. triage: I-nominated |
3 tasks
@alexcrichton I will try to fix this today. |
aturon
added a commit
to aturon/rust
that referenced
this issue
Apr 6, 2015
A recent change to the implementation of range iterators meant that, even when stepping by 1, the iterators *always* involved checked arithmetic. This commit reverts to the earlier behavior (while retaining the refactoring into traits). Fixes rust-lang#24095 cc rust-lang#24014
aturon
added a commit
to aturon/rust
that referenced
this issue
Apr 7, 2015
A recent change to the implementation of range iterators meant that, even when stepping by 1, the iterators *always* involved checked arithmetic. This commit reverts to the earlier behavior (while retaining the refactoring into traits). Fixes rust-lang#24095 cc rust-lang#24014
bors
added a commit
that referenced
this issue
Apr 8, 2015
A recent change to the implementation of range iterators meant that, even when stepping by 1, the iterators *always* involved checked arithmetic. This commit reverts to the earlier behavior (while retaining the refactoring into traits). Fixes #24095 Closes #24119 cc #24014 r? @alexcrichton
Can confirm with the new nightly that the #[bench] is reporting 50GB/s. <3 |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Hi folks. A bunch of my serialization code recently got a lot slower, and I think I've tracked it down to writing binary data into a
Vec<u8>
. This used to be quite fast, well above the 8-10GB/s range. It is now about 1GB/s for me. The followingmain.rs
demos the performance I'm seeing.The perf numbers look like (where
main
writes 4GB in 4KB chunks):Sorry if this is old news, or a misdiagnosis. Something is a bit slower now, though. The comments in the source (
Vec<T>::push_all
) do suggest it isn't stable yet because the impl might get faster; I didn't expect it to get 10x slower on me though :).The text was updated successfully, but these errors were encountered: