File tree 1 file changed +19
-4
lines changed
1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change @@ -8,21 +8,31 @@ use self::test::Bencher;
8
8
9
9
#[ bench]
10
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
+
11
16
b. iter ( || {
12
17
let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
13
18
for x in 0 ..100 {
14
- vec . push ( x) ;
19
+ push_noinline ( & mut vec , x) ;
15
20
}
16
21
vec
17
22
} ) ;
18
23
}
19
24
20
25
#[ bench]
21
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
+
22
32
b. iter ( || {
23
33
let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
24
34
for x in 0 ..100 {
25
- vec . insert ( 0 , x) ;
35
+ insert_noinline ( & mut vec , x) ;
26
36
}
27
37
vec
28
38
} ) ;
@@ -39,11 +49,16 @@ fn bench_extend(b: &mut Bencher) {
39
49
40
50
#[ bench]
41
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
+
42
58
b. iter ( || {
43
59
let mut vec: SmallVec < [ u64 ; 16 ] > = SmallVec :: new ( ) ;
44
60
for x in 0 ..100 {
45
- vec. push ( x) ;
46
- vec. pop ( ) ;
61
+ pushpop_noinline ( & mut vec, x) ;
47
62
}
48
63
vec
49
64
} ) ;
You can’t perform that action at this time.
0 commit comments