@@ -6,7 +6,7 @@ extern crate test;
66use base64ct:: { Base64Unpadded , Encoding } ;
77use test:: Bencher ;
88
9- const B64_LEN : usize = 100_002 ;
9+ const B64_LEN : usize = 100_000 ;
1010const RAW_LEN : usize = ( 3 * B64_LEN ) / 4 ;
1111
1212#[ inline( never) ]
@@ -32,19 +32,19 @@ fn decode_bench(b: &mut Bencher) {
3232 let b64_data = get_b64_data ( ) ;
3333 let mut buf = get_raw_data ( ) ;
3434 b. iter ( || {
35- let out = Base64Unpadded :: decode ( & b64_data, & mut buf) . unwrap ( ) ;
35+ let out = Base64Unpadded :: decode ( test :: black_box ( & b64_data) , & mut buf) . unwrap ( ) ;
3636 test:: black_box ( out) ;
3737 } ) ;
3838 b. bytes = RAW_LEN as u64 ;
3939}
4040
4141#[ bench]
4242fn decode_in_place_bench ( b : & mut Bencher ) {
43- let mut b64_data = get_b64_data ( ) . into_bytes ( ) ;
43+ let b64_data = get_b64_data ( ) . into_bytes ( ) ;
44+ let mut buf = b64_data. clone ( ) ;
4445 b. iter ( || {
45- // since it works on the same buffer over and over,
46- // almost always `out` will be an error
47- let out = Base64Unpadded :: decode_in_place ( & mut b64_data) ;
46+ buf. copy_from_slice ( & b64_data[ ..] ) ;
47+ let out = Base64Unpadded :: decode_in_place ( & mut buf) ;
4848 let _ = test:: black_box ( out) ;
4949 } ) ;
5050 b. bytes = RAW_LEN as u64 ;
@@ -55,7 +55,7 @@ fn encode_bench(b: &mut Bencher) {
5555 let mut buf = get_b64_data ( ) . into_bytes ( ) ;
5656 let raw_data = get_raw_data ( ) ;
5757 b. iter ( || {
58- let out = Base64Unpadded :: encode ( & raw_data, & mut buf) . unwrap ( ) ;
58+ let out = Base64Unpadded :: encode ( test :: black_box ( & raw_data) , & mut buf) . unwrap ( ) ;
5959 test:: black_box ( out) ;
6060 } ) ;
6161 b. bytes = RAW_LEN as u64 ;
0 commit comments