Skip to content

Commit ca52648

Browse files
committed
Benchmarks for SmallVec
1 parent 9169934 commit ca52648

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed

src/librustc_data_structures/small_vec.rs

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,119 @@ impl<A> Decodable for SmallVec<A>
225225
})
226226
}
227227
}
228+
229+
#[cfg(test)]
230+
mod tests {
231+
extern crate test;
232+
use self::test::Bencher;
233+
234+
use super::*;
235+
236+
#[bench]
237+
fn fill_small_vec_1_10_with_cap(b: &mut Bencher) {
238+
b.iter(|| {
239+
let mut sv: SmallVec<[usize; 1]> = SmallVec::with_capacity(10);
240+
241+
sv.extend(0..10);
242+
})
243+
}
244+
245+
#[bench]
246+
fn fill_small_vec_1_10_wo_cap(b: &mut Bencher) {
247+
b.iter(|| {
248+
let mut sv: SmallVec<[usize; 1]> = SmallVec::new();
249+
250+
sv.extend(0..10);
251+
})
252+
}
253+
254+
#[bench]
255+
fn fill_small_vec_8_10_with_cap(b: &mut Bencher) {
256+
b.iter(|| {
257+
let mut sv: SmallVec<[usize; 8]> = SmallVec::with_capacity(10);
258+
259+
sv.extend(0..10);
260+
})
261+
}
262+
263+
#[bench]
264+
fn fill_small_vec_8_10_wo_cap(b: &mut Bencher) {
265+
b.iter(|| {
266+
let mut sv: SmallVec<[usize; 8]> = SmallVec::new();
267+
268+
sv.extend(0..10);
269+
})
270+
}
271+
272+
#[bench]
273+
fn fill_small_vec_32_10_with_cap(b: &mut Bencher) {
274+
b.iter(|| {
275+
let mut sv: SmallVec<[usize; 32]> = SmallVec::with_capacity(10);
276+
277+
sv.extend(0..10);
278+
})
279+
}
280+
281+
#[bench]
282+
fn fill_small_vec_32_10_wo_cap(b: &mut Bencher) {
283+
b.iter(|| {
284+
let mut sv: SmallVec<[usize; 32]> = SmallVec::new();
285+
286+
sv.extend(0..10);
287+
})
288+
}
289+
290+
#[bench]
291+
fn fill_small_vec_1_50_with_cap(b: &mut Bencher) {
292+
b.iter(|| {
293+
let mut sv: SmallVec<[usize; 1]> = SmallVec::with_capacity(50);
294+
295+
sv.extend(0..50);
296+
})
297+
}
298+
299+
#[bench]
300+
fn fill_small_vec_1_50_wo_cap(b: &mut Bencher) {
301+
b.iter(|| {
302+
let mut sv: SmallVec<[usize; 1]> = SmallVec::new();
303+
304+
sv.extend(0..50);
305+
})
306+
}
307+
308+
#[bench]
309+
fn fill_small_vec_8_50_with_cap(b: &mut Bencher) {
310+
b.iter(|| {
311+
let mut sv: SmallVec<[usize; 8]> = SmallVec::with_capacity(50);
312+
313+
sv.extend(0..50);
314+
})
315+
}
316+
317+
#[bench]
318+
fn fill_small_vec_8_50_wo_cap(b: &mut Bencher) {
319+
b.iter(|| {
320+
let mut sv: SmallVec<[usize; 8]> = SmallVec::new();
321+
322+
sv.extend(0..50);
323+
})
324+
}
325+
326+
#[bench]
327+
fn fill_small_vec_32_50_with_cap(b: &mut Bencher) {
328+
b.iter(|| {
329+
let mut sv: SmallVec<[usize; 32]> = SmallVec::with_capacity(50);
330+
331+
sv.extend(0..50);
332+
})
333+
}
334+
335+
#[bench]
336+
fn fill_small_vec_32_50_wo_cap(b: &mut Bencher) {
337+
b.iter(|| {
338+
let mut sv: SmallVec<[usize; 32]> = SmallVec::new();
339+
340+
sv.extend(0..50);
341+
})
342+
}
343+
}

0 commit comments

Comments
 (0)