@@ -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