@@ -6,7 +6,7 @@ extern crate test;
6
6
use base64ct:: { Base64Unpadded , Encoding } ;
7
7
use test:: Bencher ;
8
8
9
- const B64_LEN : usize = 100_002 ;
9
+ const B64_LEN : usize = 100_000 ;
10
10
const RAW_LEN : usize = ( 3 * B64_LEN ) / 4 ;
11
11
12
12
#[ inline( never) ]
@@ -32,19 +32,19 @@ fn decode_bench(b: &mut Bencher) {
32
32
let b64_data = get_b64_data ( ) ;
33
33
let mut buf = get_raw_data ( ) ;
34
34
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 ( ) ;
36
36
test:: black_box ( out) ;
37
37
} ) ;
38
38
b. bytes = RAW_LEN as u64 ;
39
39
}
40
40
41
41
#[ bench]
42
42
fn 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 ( ) ;
44
45
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) ;
48
48
let _ = test:: black_box ( out) ;
49
49
} ) ;
50
50
b. bytes = RAW_LEN as u64 ;
@@ -55,7 +55,7 @@ fn encode_bench(b: &mut Bencher) {
55
55
let mut buf = get_b64_data ( ) . into_bytes ( ) ;
56
56
let raw_data = get_raw_data ( ) ;
57
57
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 ( ) ;
59
59
test:: black_box ( out) ;
60
60
} ) ;
61
61
b. bytes = RAW_LEN as u64 ;
0 commit comments