@@ -225,3 +225,119 @@ impl<A> Decodable for SmallVec<A>
225
225
} )
226
226
}
227
227
}
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