11use std:: fmt:: { self , Write as FmtWrite } ;
22use std:: io:: { self , Write as IoWrite } ;
3- use test:: Bencher ;
3+ use test:: { black_box , Bencher } ;
44
55#[ bench]
66fn write_vec_value ( bh : & mut Bencher ) {
77 bh. iter ( || {
88 let mut mem = Vec :: new ( ) ;
99 for _ in 0 ..1000 {
10- mem. write_all ( "abc" . as_bytes ( ) ) . unwrap ( ) ;
10+ mem. write_all ( black_box ( "abc" ) . as_bytes ( ) ) . unwrap ( ) ;
1111 }
1212 } ) ;
1313}
@@ -18,7 +18,7 @@ fn write_vec_ref(bh: &mut Bencher) {
1818 let mut mem = Vec :: new ( ) ;
1919 let wr = & mut mem as & mut dyn io:: Write ;
2020 for _ in 0 ..1000 {
21- wr. write_all ( "abc" . as_bytes ( ) ) . unwrap ( ) ;
21+ wr. write_all ( black_box ( "abc" ) . as_bytes ( ) ) . unwrap ( ) ;
2222 }
2323 } ) ;
2424}
@@ -29,7 +29,7 @@ fn write_vec_macro1(bh: &mut Bencher) {
2929 let mut mem = Vec :: new ( ) ;
3030 let wr = & mut mem as & mut dyn io:: Write ;
3131 for _ in 0 ..1000 {
32- write ! ( wr, "abc" ) . unwrap ( ) ;
32+ write ! ( wr, "{}" , black_box ( " abc") ) . unwrap ( ) ;
3333 }
3434 } ) ;
3535}
@@ -40,7 +40,7 @@ fn write_vec_macro2(bh: &mut Bencher) {
4040 let mut mem = Vec :: new ( ) ;
4141 let wr = & mut mem as & mut dyn io:: Write ;
4242 for _ in 0 ..1000 {
43- write ! ( wr, "{}" , "abc" ) . unwrap ( ) ;
43+ write ! ( wr, "{}" , black_box ( "abc" ) ) . unwrap ( ) ;
4444 }
4545 } ) ;
4646}
@@ -51,7 +51,7 @@ fn write_vec_macro_debug(bh: &mut Bencher) {
5151 let mut mem = Vec :: new ( ) ;
5252 let wr = & mut mem as & mut dyn io:: Write ;
5353 for _ in 0 ..1000 {
54- write ! ( wr, "{:?}" , "☃" ) . unwrap ( ) ;
54+ write ! ( wr, "{:?}" , black_box ( "☃" ) ) . unwrap ( ) ;
5555 }
5656 } ) ;
5757}
@@ -61,7 +61,7 @@ fn write_str_value(bh: &mut Bencher) {
6161 bh. iter ( || {
6262 let mut mem = String :: new ( ) ;
6363 for _ in 0 ..1000 {
64- mem. write_str ( "abc" ) . unwrap ( ) ;
64+ mem. write_str ( black_box ( "abc" ) ) . unwrap ( ) ;
6565 }
6666 } ) ;
6767}
@@ -72,7 +72,7 @@ fn write_str_ref(bh: &mut Bencher) {
7272 let mut mem = String :: new ( ) ;
7373 let wr = & mut mem as & mut dyn fmt:: Write ;
7474 for _ in 0 ..1000 {
75- wr. write_str ( "abc" ) . unwrap ( ) ;
75+ wr. write_str ( black_box ( "abc" ) ) . unwrap ( ) ;
7676 }
7777 } ) ;
7878}
@@ -82,7 +82,7 @@ fn write_str_macro1(bh: &mut Bencher) {
8282 bh. iter ( || {
8383 let mut mem = String :: new ( ) ;
8484 for _ in 0 ..1000 {
85- write ! ( mem, "abc" ) . unwrap ( ) ;
85+ write ! ( mem, "{}" , black_box ( " abc") ) . unwrap ( ) ;
8686 }
8787 } ) ;
8888}
@@ -93,7 +93,7 @@ fn write_str_macro2(bh: &mut Bencher) {
9393 let mut mem = String :: new ( ) ;
9494 let wr = & mut mem as & mut dyn fmt:: Write ;
9595 for _ in 0 ..1000 {
96- write ! ( wr, "{}" , "abc" ) . unwrap ( ) ;
96+ write ! ( wr, "{}" , black_box ( "abc" ) ) . unwrap ( ) ;
9797 }
9898 } ) ;
9999}
@@ -104,7 +104,7 @@ fn write_str_macro_debug(bh: &mut Bencher) {
104104 let mut mem = String :: new ( ) ;
105105 let wr = & mut mem as & mut dyn fmt:: Write ;
106106 for _ in 0 ..1000 {
107- write ! ( wr, "{:?}" , "☃" ) . unwrap ( ) ;
107+ write ! ( wr, "{:?}" , black_box ( "☃" ) ) . unwrap ( ) ;
108108 }
109109 } ) ;
110110}
@@ -115,7 +115,7 @@ fn write_str_macro_debug_ascii(bh: &mut Bencher) {
115115 let mut mem = String :: new ( ) ;
116116 let wr = & mut mem as & mut dyn fmt:: Write ;
117117 for _ in 0 ..1000 {
118- write ! ( wr, "{:?}" , "Hello, World!" ) . unwrap ( ) ;
118+ write ! ( wr, "{:?}" , black_box ( "Hello, World!" ) ) . unwrap ( ) ;
119119 }
120120 } ) ;
121121}
0 commit comments