1
1
use std:: fmt:: { self , Write as FmtWrite } ;
2
2
use std:: io:: { self , Write as IoWrite } ;
3
- use test:: Bencher ;
3
+ use test:: { black_box , Bencher } ;
4
4
5
5
#[ bench]
6
6
fn write_vec_value ( bh : & mut Bencher ) {
7
7
bh. iter ( || {
8
8
let mut mem = Vec :: new ( ) ;
9
9
for _ in 0 ..1000 {
10
- mem. write_all ( "abc" . as_bytes ( ) ) . unwrap ( ) ;
10
+ mem. write_all ( black_box ( "abc" ) . as_bytes ( ) ) . unwrap ( ) ;
11
11
}
12
12
} ) ;
13
13
}
@@ -18,7 +18,7 @@ fn write_vec_ref(bh: &mut Bencher) {
18
18
let mut mem = Vec :: new ( ) ;
19
19
let wr = & mut mem as & mut dyn io:: Write ;
20
20
for _ in 0 ..1000 {
21
- wr. write_all ( "abc" . as_bytes ( ) ) . unwrap ( ) ;
21
+ wr. write_all ( black_box ( "abc" ) . as_bytes ( ) ) . unwrap ( ) ;
22
22
}
23
23
} ) ;
24
24
}
@@ -29,7 +29,7 @@ fn write_vec_macro1(bh: &mut Bencher) {
29
29
let mut mem = Vec :: new ( ) ;
30
30
let wr = & mut mem as & mut dyn io:: Write ;
31
31
for _ in 0 ..1000 {
32
- write ! ( wr, "abc" ) . unwrap ( ) ;
32
+ write ! ( wr, "{}" , black_box ( " abc") ) . unwrap ( ) ;
33
33
}
34
34
} ) ;
35
35
}
@@ -40,7 +40,7 @@ fn write_vec_macro2(bh: &mut Bencher) {
40
40
let mut mem = Vec :: new ( ) ;
41
41
let wr = & mut mem as & mut dyn io:: Write ;
42
42
for _ in 0 ..1000 {
43
- write ! ( wr, "{}" , "abc" ) . unwrap ( ) ;
43
+ write ! ( wr, "{}" , black_box ( "abc" ) ) . unwrap ( ) ;
44
44
}
45
45
} ) ;
46
46
}
@@ -51,7 +51,7 @@ fn write_vec_macro_debug(bh: &mut Bencher) {
51
51
let mut mem = Vec :: new ( ) ;
52
52
let wr = & mut mem as & mut dyn io:: Write ;
53
53
for _ in 0 ..1000 {
54
- write ! ( wr, "{:?}" , "☃" ) . unwrap ( ) ;
54
+ write ! ( wr, "{:?}" , black_box ( "☃" ) ) . unwrap ( ) ;
55
55
}
56
56
} ) ;
57
57
}
@@ -61,7 +61,7 @@ fn write_str_value(bh: &mut Bencher) {
61
61
bh. iter ( || {
62
62
let mut mem = String :: new ( ) ;
63
63
for _ in 0 ..1000 {
64
- mem. write_str ( "abc" ) . unwrap ( ) ;
64
+ mem. write_str ( black_box ( "abc" ) ) . unwrap ( ) ;
65
65
}
66
66
} ) ;
67
67
}
@@ -72,7 +72,7 @@ fn write_str_ref(bh: &mut Bencher) {
72
72
let mut mem = String :: new ( ) ;
73
73
let wr = & mut mem as & mut dyn fmt:: Write ;
74
74
for _ in 0 ..1000 {
75
- wr. write_str ( "abc" ) . unwrap ( ) ;
75
+ wr. write_str ( black_box ( "abc" ) ) . unwrap ( ) ;
76
76
}
77
77
} ) ;
78
78
}
@@ -82,7 +82,7 @@ fn write_str_macro1(bh: &mut Bencher) {
82
82
bh. iter ( || {
83
83
let mut mem = String :: new ( ) ;
84
84
for _ in 0 ..1000 {
85
- write ! ( mem, "abc" ) . unwrap ( ) ;
85
+ write ! ( mem, "{}" , black_box ( " abc") ) . unwrap ( ) ;
86
86
}
87
87
} ) ;
88
88
}
@@ -93,7 +93,7 @@ fn write_str_macro2(bh: &mut Bencher) {
93
93
let mut mem = String :: new ( ) ;
94
94
let wr = & mut mem as & mut dyn fmt:: Write ;
95
95
for _ in 0 ..1000 {
96
- write ! ( wr, "{}" , "abc" ) . unwrap ( ) ;
96
+ write ! ( wr, "{}" , black_box ( "abc" ) ) . unwrap ( ) ;
97
97
}
98
98
} ) ;
99
99
}
@@ -104,7 +104,7 @@ fn write_str_macro_debug(bh: &mut Bencher) {
104
104
let mut mem = String :: new ( ) ;
105
105
let wr = & mut mem as & mut dyn fmt:: Write ;
106
106
for _ in 0 ..1000 {
107
- write ! ( wr, "{:?}" , "☃" ) . unwrap ( ) ;
107
+ write ! ( wr, "{:?}" , black_box ( "☃" ) ) . unwrap ( ) ;
108
108
}
109
109
} ) ;
110
110
}
@@ -115,7 +115,7 @@ fn write_str_macro_debug_ascii(bh: &mut Bencher) {
115
115
let mut mem = String :: new ( ) ;
116
116
let wr = & mut mem as & mut dyn fmt:: Write ;
117
117
for _ in 0 ..1000 {
118
- write ! ( wr, "{:?}" , "Hello, World!" ) . unwrap ( ) ;
118
+ write ! ( wr, "{:?}" , black_box ( "Hello, World!" ) ) . unwrap ( ) ;
119
119
}
120
120
} ) ;
121
121
}
0 commit comments