File tree Expand file tree Collapse file tree 4 files changed +66
-57
lines changed
Expand file tree Collapse file tree 4 files changed +66
-57
lines changed Original file line number Diff line number Diff line change 66script : |
77 cargo build --verbose &&
88 cargo test --verbose &&
9- ([ $TRAVIS_RUST_VERSION != nightly ] || cargo test --verbose --features benchmarks) &&
10- ([ $TRAVIS_RUST_VERSION != nightly ] || cargo bench --verbose --features benchmarks bench)
9+ ([ $TRAVIS_RUST_VERSION != nightly ] || cargo bench --verbose bench)
1110notifications :
1211 webhooks : http://build.servo.org:54856/travis
Original file line number Diff line number Diff line change @@ -13,6 +13,3 @@ documentation = "http://doc.servo.org/smallvec/"
1313name = " smallvec"
1414path = " lib.rs"
1515doctest = false
16-
17- [features ]
18- benchmarks = []
Original file line number Diff line number Diff line change 1+ #![ feature( test) ]
2+
3+ extern crate smallvec;
4+ extern crate test;
5+
6+ use smallvec:: SmallVec ;
7+ use self :: test:: Bencher ;
8+
9+ #[ bench]
10+ fn bench_push ( b : & mut Bencher ) {
11+ #[ inline( never) ]
12+ fn push_noinline ( vec : & mut SmallVec < [ u64 ; 16 ] > , x : u64 ) {
13+ vec. push ( x)
14+ }
15+
16+ b. iter ( || {
17+ let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
18+ for x in 0 ..100 {
19+ push_noinline ( & mut vec, x) ;
20+ }
21+ vec
22+ } ) ;
23+ }
24+
25+ #[ bench]
26+ fn bench_insert ( b : & mut Bencher ) {
27+ #[ inline( never) ]
28+ fn insert_noinline ( vec : & mut SmallVec < [ u64 ; 16 ] > , x : u64 ) {
29+ vec. insert ( 0 , x)
30+ }
31+
32+ b. iter ( || {
33+ let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
34+ for x in 0 ..100 {
35+ insert_noinline ( & mut vec, x) ;
36+ }
37+ vec
38+ } ) ;
39+ }
40+
41+ #[ bench]
42+ fn bench_extend ( b : & mut Bencher ) {
43+ b. iter ( || {
44+ let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
45+ vec. extend ( 0 ..100 ) ;
46+ vec
47+ } ) ;
48+ }
49+
50+ #[ bench]
51+ fn bench_pushpop ( b : & mut Bencher ) {
52+ #[ inline( never) ]
53+ fn pushpop_noinline ( vec : & mut SmallVec < [ u64 ; 16 ] > , x : u64 ) {
54+ vec. push ( x) ;
55+ vec. pop ( ) ;
56+ }
57+
58+ b. iter ( || {
59+ let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
60+ for x in 0 ..100 {
61+ pushpop_noinline ( & mut vec, x) ;
62+ }
63+ vec
64+ } ) ;
65+ }
Original file line number Diff line number Diff line change 55//! Small vectors in various sizes. These store a certain number of elements inline and fall back
66//! to the heap for larger allocations.
77
8- #![ cfg_attr( feature = "benchmarks" , feature( test) ) ]
9-
108use std:: borrow:: { Borrow , BorrowMut } ;
119use std:: cmp;
1210use std:: fmt;
@@ -1010,53 +1008,3 @@ pub mod tests {
10101008 assert_eq ! ( vec. drain( ) . len( ) , 3 ) ;
10111009 }
10121010}
1013-
1014- #[ cfg( all( feature = "benchmarks" , test) ) ]
1015- mod bench {
1016- extern crate test;
1017- use SmallVec ;
1018- use self :: test:: Bencher ;
1019-
1020- #[ bench]
1021- fn bench_push ( b : & mut Bencher ) {
1022- b. iter ( || {
1023- let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
1024- for x in 0 ..100 {
1025- vec. push ( x) ;
1026- }
1027- vec
1028- } ) ;
1029- }
1030-
1031- #[ bench]
1032- fn bench_insert ( b : & mut Bencher ) {
1033- b. iter ( || {
1034- let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
1035- for x in 0 ..100 {
1036- vec. insert ( 0 , x) ;
1037- }
1038- vec
1039- } ) ;
1040- }
1041-
1042- #[ bench]
1043- fn bench_extend ( b : & mut Bencher ) {
1044- b. iter ( || {
1045- let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
1046- vec. extend ( 0 ..100 ) ;
1047- vec
1048- } ) ;
1049- }
1050-
1051- #[ bench]
1052- fn bench_pushpop ( b : & mut Bencher ) {
1053- b. iter ( || {
1054- let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
1055- for x in 0 ..100 {
1056- vec. push ( x) ;
1057- vec. pop ( ) ;
1058- }
1059- vec
1060- } ) ;
1061- }
1062- }
You can’t perform that action at this time.
0 commit comments