The 8472
d0f38cc4b4
update vec::retain benchmarks
...
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-12-04 16:20:35 +01:00
John Kugelman
fb2d0f5c03
Add #[must_use] to remaining alloc functions
2021-10-15 11:46:49 -04:00
Jubilee
19d9a147be
Rollup merge of #88452 - xu-cheng:vecdeque-from-array, r=m-ou-se
...
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-10-04 13:58:08 -07:00
TennyZhuang
20e14e4030
Add benchmark for Vec::retain
2021-09-17 02:55:12 +08:00
Cheng XU
2ab73cf63d
add benchmark for From<[T; N]> in VecDeque
2021-08-28 19:46:58 -07:00
Cheng XU
6a6885c6bd
add benchmark for BTreeMap::from_iter
2021-08-28 17:18:43 -07:00
Ali Malik
e43254aad1
Fix may not to appropriate might not or must not
2021-07-29 01:15:20 -04:00
The8472
e015e9da71
implement fold() on array::IntoIter to improve flatten().collect() perf
...
```
# 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-07-24 19:24:11 +02:00
Stein Somers
b9d43c603b
BTree: encapsulate LeafRange better & some debug asserts
2021-06-09 12:03:07 +02:00
Muhammad Mominul Huque
507d97b26e
Update expressions where we can use array's IntoIterator implementation
2021-06-02 16:09:04 +06:00
The8472
60a900ee10
remove InPlaceIterable marker from Peekable due to unsoundness
...
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-05-19 01:41:09 +02:00
Ben Kimock
8c88418114
Try to make Vec benchmarks only run code they are benchmarking
...
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-25 00:14:00 -04:00
The8472
a1a04e0842
add transmute-via-iterators bench
2021-03-21 20:54:05 +01:00
Soveu
b0092bc995
Vec::dedup optimization - add benches
2021-03-16 14:41:26 +01:00
Stein Somers
d9daedd433
BTreeMap: correct tests for alternative choices of B
2021-02-21 19:06:46 +01:00
Ivan Tham
55ba9e4755
Reorder benches const variable
...
Move LEN so it is is read in order.
2020-09-29 21:39:24 +08:00
Ivan Tham
939fd37643
Rust vec bench import specific rand::RngCore
2020-09-25 22:19:28 +08:00
Ivan Tham
4a6bc77a01
Liballoc bench vec use mem take not replace
2020-09-22 14:26:15 +08:00
Ralf Jung
4b362bbbb6
Rollup merge of #76981 - pickfire:patch-5, r=Mark-Simulacrum
...
liballoc bench use imported path Bencher
test is already in scope, no need to use the full path
2020-09-21 15:30:44 +02:00
bors
a409a233e0
Auto merge of #75974 - SkiFire13:peekmut-opt-sift, r=LukasKalbertodt
...
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 05:31:01 +00:00
Ivan Tham
d99bb9d31c
liballoc bench use imported path Bencher
...
test is already in scope, no need to use the full path
2020-09-21 00:46:40 +08:00
Giacomo Stevanato
924cd135b6
Added benchmarks for BinaryHeap
2020-09-20 01:12:02 +02:00
Ivan Tham
685f04220e
Clean up vec benches bench_in_place style
2020-09-06 12:00:22 +08:00
The8472
a62cd1b44c
fix benchmark compile errors
2020-09-03 20:59:33 +02:00
The8472
6ad133443a
add benchmark to cover in-place extend
2020-09-03 20:59:28 +02:00
The8472
c731648e77
fix: bench didn't black_box its results
2020-09-03 20:59:23 +02:00
The8472
e1151844fa
bench larger allocations
2020-09-03 20:59:22 +02:00
The8472
3d5e9f1904
bench in-place zip
2020-09-03 20:59:18 +02:00
The8472
a596ff36b5
exercise more of the in-place pipeline in the bench
2020-09-03 20:59:14 +02:00
The8472
a9c78e371e
bench in-place collect of droppables
2020-09-03 20:59:13 +02:00
The8472
8ac96e6a98
cyclic in-place reuse bench
2020-09-03 20:59:13 +02:00
The8472
bb4f888a59
return the things under test so they get black_box()'ed
2020-09-03 20:59:12 +02:00
The8472
2f700d085a
add benches from bluss' gists
2020-09-03 20:59:12 +02:00
The8472
6c5c47b82b
update benches
2020-09-03 20:59:09 +02:00
The8472
038394a330
bench
2020-09-03 20:56:34 +02:00
Ivan Tham
4f2e182c5f
Liballoc bench rename push_all extend_from_slice
2020-08-20 19:04:52 +08:00
Ivan Tham
2932d4e634
Remove duplicated alloc vec bench push_all_move
...
push_all_move is the same as extend
2020-08-20 15:20:46 +08:00
Stein Somers
602f9aab89
More benchmarks of BTreeMap mutation
2020-08-01 20:23:13 +02:00
mark
2c31b45ae8
mv std libs to library/
2020-07-27 19:51:13 -05:00