| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-06-14 | s/drain_filter/extract_if/ for Vec, Btree{Map,Set} and LinkedList | The 8472 | -11/+11 | |
| 2023-04-12 | remove some unneeded imports | KaDiWa | -2/+1 | |
| 2023-02-18 | Auto merge of #106241 - Sp00ph:vec_deque_iter_methods, r=the8472 | bors | -1/+145 | |
| Implement more methods for `vec_deque::IntoIter` This implements a couple `Iterator` methods on `vec_deque::IntoIter` (`(try_)fold`, `(try_)rfold` `advance_(back_)by`, `next_chunk`, `count` and `last`) to allow these to be more efficient than their default implementations, also allowing many other `Iterator` methods that use these under the hood to take advantage of these manual implementations. `vec::IntoIter` has similar implementations for many of these methods. This PR does not yet implement `TrustedRandomAccess` and friends, as I'm not very familiar with the required safety guarantees. r? `@the8472` (since you also took over my last PR) | ||||
| 2023-01-18 | Add `vec_deque::IntoIter` benchmarks | Markus Everling | -1/+145 | |
| 2023-01-04 | Update rand in the stdlib tests, and remove the getrandom feature from it | Thom Chiovoloni | -2/+2 | |
| 2022-11-20 | enable fuzzy_provenance_casts lint in liballoc | Ralf Jung | -0/+2 | |
| 2022-11-14 | update str.contains benchmarks | The 8472 | -3/+54 | |
| 2022-11-14 | black_box test strings in str.contains(str) benchmarks | The 8472 | -4/+4 | |
| 2022-09-30 | Stabilize map_first_last | est31 | -1/+0 | |
| 2022-07-26 | Optimized vec::IntoIter::next_chunk impl | The 8472 | -0/+21 | |
| ``` test vec::bench_next_chunk ... bench: 696 ns/iter (+/- 22) x86_64v1, pr test vec::bench_next_chunk ... bench: 309 ns/iter (+/- 4) znver2, default test vec::bench_next_chunk ... bench: 17,272 ns/iter (+/- 117) znver2, pr test vec::bench_next_chunk ... bench: 211 ns/iter (+/- 3) ``` The znver2 default impl seems to be slow due to inlining decisions. It goes through `core::array::iter_next_chunk` which has a deeper call tree. | ||||
| 2022-06-17 | Add VecDeque::extend TrustedLen benchmark | Paolo Barbolini | -0/+32 | |
| 2022-05-02 | Avoid use of `rand::thread_rng` in stdlib benchmarks | Thom Chiovoloni | -26/+31 | |
| 2022-04-27 | Add VecDeque::extend benchmark | Paolo Barbolini | -0/+24 | |
| 2022-03-29 | Add debug assertions to some unsafe functions | Ben Kimock | -2/+2 | |
| These debug assertions are all implemented only at runtime using `const_eval_select`, and in the error path they execute `intrinsics::abort` instead of being a normal debug assertion to minimize the impact of these assertions on code size, when enabled. Of all these changes, the bounds checks for unchecked indexing are expected to be most impactful (case in point, they found a problem in rustc). | ||||
| 2021-12-04 | update vec::retain benchmarks | The 8472 | -2/+17 | |
| Add `into_iter().filter().collect()` as a comparison point since it was reported to be faster than `retain`. Remove clone inside benchmark loop to reduce allocator noise. | ||||
| 2021-10-15 | Add #[must_use] to remaining alloc functions | John Kugelman | -2/+2 | |
| 2021-10-04 | Rollup merge of #88452 - xu-cheng:vecdeque-from-array, r=m-ou-se | Jubilee | -0/+15 | |
| VecDeque: improve performance for From<[T; N]> Create `VecDeque` directly from the array instead of inserting items one-by-one. Benchmark ``` ./x.py bench library/alloc --test-args vec_deque::bench_from_array_1000 ``` * Before ``` test vec_deque::bench_from_array_1000 ... bench: 3,991 ns/iter (+/- 717) ``` * After ``` test vec_deque::bench_from_array_1000 ... bench: 268 ns/iter (+/- 37) ``` | ||||
| 2021-09-17 | Add benchmark for Vec::retain | TennyZhuang | -0/+15 | |
| 2021-08-28 | add benchmark for From<[T; N]> in VecDeque | Cheng XU | -0/+15 | |
| 2021-08-28 | add benchmark for BTreeMap::from_iter | Cheng XU | -0/+50 | |
| 2021-07-29 | Fix may not to appropriate might not or must not | Ali Malik | -1/+1 | |
| 2021-07-24 | implement fold() on array::IntoIter to improve flatten().collect() perf | The8472 | -0/+6 | |
| ``` # old test vec::bench_flat_map_collect ... bench: 2,244,024 ns/iter (+/- 18,903) # new test vec::bench_flat_map_collect ... bench: 172,863 ns/iter (+/- 2,141) ``` | ||||
| 2021-06-09 | BTree: encapsulate LeafRange better & some debug asserts | Stein Somers | -7/+32 | |
| 2021-06-02 | Update expressions where we can use array's IntoIterator implementation | Muhammad Mominul Huque | -8/+2 | |
| 2021-05-19 | remove InPlaceIterable marker from Peekable due to unsoundness | The8472 | -1/+0 | |
| The unsoundness is not in Peekable per se, it rather is due to the interaction between Peekable being able to hold an extra item and vec::IntoIter's clone implementation shortening the allocation. An alternative solution would be to change IntoIter's clone implementation to keep enough spare capacity available. | ||||
| 2021-03-25 | Try to make Vec benchmarks only run code they are benchmarking | Ben Kimock | -68/+25 | |
| Many of the Vec benchmarks assert what values should be produced by the benchmarked code. In some cases, these asserts dominate the runtime of the benchmarks they are in, causing the benchmarks to understate the impact of an optimization or regression. | ||||
| 2021-03-21 | add transmute-via-iterators bench | The8472 | -0/+16 | |
| 2021-03-16 | Vec::dedup optimization - add benches | Soveu | -0/+90 | |
| 2021-02-21 | BTreeMap: correct tests for alternative choices of B | Stein Somers | -76/+0 | |
| 2020-09-29 | Reorder benches const variable | Ivan Tham | -2/+2 | |
| Move LEN so it is is read in order. | ||||
| 2020-09-25 | Rust vec bench import specific rand::RngCore | Ivan Tham | -1/+1 | |
| 2020-09-22 | Liballoc bench vec use mem take not replace | Ivan Tham | -3/+3 | |
| 2020-09-21 | Rollup merge of #76981 - pickfire:patch-5, r=Mark-Simulacrum | Ralf Jung | -14/+14 | |
| liballoc bench use imported path Bencher test is already in scope, no need to use the full path | ||||
| 2020-09-21 | Auto merge of #75974 - SkiFire13:peekmut-opt-sift, r=LukasKalbertodt | bors | -0/+92 | |
| Avoid useless sift_down when std::collections::binary_heap::PeekMut is never mutably dereferenced If `deref_mut` is never called then it's not possible for the element to be mutated without internal mutability, meaning there's no need to call `sift_down`. This could be a little improvement in cases where you want to mutate the biggest element of the heap only if it satisfies a certain predicate that needs only read access to the element. | ||||
| 2020-09-21 | liballoc bench use imported path Bencher | Ivan Tham | -14/+14 | |
| test is already in scope, no need to use the full path | ||||
| 2020-09-20 | Added benchmarks for BinaryHeap | Giacomo Stevanato | -0/+92 | |
| 2020-09-06 | Clean up vec benches bench_in_place style | Ivan Tham | -22/+21 | |
| 2020-09-03 | fix benchmark compile errors | The8472 | -12/+9 | |
| 2020-09-03 | add benchmark to cover in-place extend | The8472 | -0/+14 | |
| 2020-09-03 | fix: bench didn't black_box its results | The8472 | -3/+1 | |
| 2020-09-03 | bench larger allocations | The8472 | -6/+6 | |
| 2020-09-03 | bench in-place zip | The8472 | -0/+37 | |
| 2020-09-03 | exercise more of the in-place pipeline in the bench | The8472 | -1/+8 | |
| 2020-09-03 | bench in-place collect of droppables | The8472 | -0/+15 | |
| 2020-09-03 | cyclic in-place reuse bench | The8472 | -0/+20 | |
| 2020-09-03 | return the things under test so they get black_box()'ed | The8472 | -1/+10 | |
| 2020-09-03 | add benches from bluss' gists | The8472 | -0/+104 | |
| 2020-09-03 | update benches | The8472 | -3/+4 | |
| 2020-09-03 | bench | The8472 | -1/+40 | |
| 2020-08-20 | Liballoc bench rename push_all extend_from_slice | Ivan Tham | -15/+15 | |
