Skip to content

Commit 7f9e513

Browse files
nnethercotembrubeck
authored andcommitted
Add a benchmark for the insert case where index == len.
1 parent b233568 commit 7f9e513

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

benches/bench.rs

+19
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ make_benches! {
9696
SmallVec<[u64; VEC_SIZE]> {
9797
bench_push => gen_push(SPILLED_SIZE as _),
9898
bench_push_small => gen_push(VEC_SIZE as _),
99+
bench_insert_push => gen_insert_push(SPILLED_SIZE as _),
100+
bench_insert_push_small => gen_insert_push(VEC_SIZE as _),
99101
bench_insert => gen_insert(SPILLED_SIZE as _),
100102
bench_insert_small => gen_insert(VEC_SIZE as _),
101103
bench_remove => gen_remove(SPILLED_SIZE as _),
@@ -118,6 +120,8 @@ make_benches! {
118120
Vec<u64> {
119121
bench_push_vec => gen_push(SPILLED_SIZE as _),
120122
bench_push_vec_small => gen_push(VEC_SIZE as _),
123+
bench_insert_push_vec => gen_insert_push(SPILLED_SIZE as _),
124+
bench_insert_push_vec_small => gen_insert_push(VEC_SIZE as _),
121125
bench_insert_vec => gen_insert(SPILLED_SIZE as _),
122126
bench_insert_vec_small => gen_insert(VEC_SIZE as _),
123127
bench_remove_vec => gen_remove(SPILLED_SIZE as _),
@@ -151,6 +155,21 @@ fn gen_push<V: Vector<u64>>(n: u64, b: &mut Bencher) {
151155
});
152156
}
153157

158+
fn gen_insert_push<V: Vector<u64>>(n: u64, b: &mut Bencher) {
159+
#[inline(never)]
160+
fn insert_push_noinline<V: Vector<u64>>(vec: &mut V, x: u64) {
161+
vec.insert(x as usize, x);
162+
}
163+
164+
b.iter(|| {
165+
let mut vec = V::new();
166+
for x in 0..n {
167+
insert_push_noinline(&mut vec, x);
168+
}
169+
vec
170+
});
171+
}
172+
154173
fn gen_insert<V: Vector<u64>>(n: u64, b: &mut Bencher) {
155174
#[inline(never)]
156175
fn insert_noinline<V: Vector<u64>>(vec: &mut V, p: usize, x: u64) {

0 commit comments

Comments
 (0)