rust/library/alloc/src/collections
bors af9b508e1d Auto merge of #88717 - tabokie:vecdeque-fast-append, r=m-ou-se
Optimize VecDeque::append

Optimize `VecDeque::append` to do unsafe copy rather than iterating through each element.

On my `Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz`, the benchmark shows 37% improvements:
```
Master:
custom-bench vec_deque_append 583164 ns/iter
custom-bench vec_deque_append 550040 ns/iter

Patched:
custom-bench vec_deque_append 349204 ns/iter
custom-bench vec_deque_append 368164 ns/iter
```

Additional notes on the context: this is the third attempt to implement a non-trivial version of `VecDeque::append`, the last two are reverted due to unsoundness or regression, see:
- https://github.com/rust-lang/rust/pull/52553, reverted in https://github.com/rust-lang/rust/pull/53571
- https://github.com/rust-lang/rust/pull/53564, reverted in https://github.com/rust-lang/rust/pull/54851

Both cases are covered by existing tests.

Signed-off-by: tabokie <xy.tao@outlook.com>
2021-10-15 12:51:31 +00:00
..
btree Rollup merge of #89726 - jkugelman:must-use-alloc-constructors, r=joshtriplett 2021-10-11 14:11:42 +02:00
linked_list
vec_deque Auto merge of #88717 - tabokie:vecdeque-fast-append, r=m-ou-se 2021-10-15 12:51:31 +00:00
binary_heap.rs Rollup merge of #89778 - jkugelman:must-use-as_type-conversions, r=joshtriplett 2021-10-12 14:53:08 +02:00
linked_list.rs Rollup merge of #89778 - jkugelman:must-use-as_type-conversions, r=joshtriplett 2021-10-12 14:53:08 +02:00
mod.rs Stabilize try_reserve 2021-10-04 10:29:46 +01:00