11use criterion:: { criterion_group, criterion_main} ;
22use criterion:: { BatchSize , Criterion } ;
33
4+ /// Length of the test bytes vector.
5+ const N : usize = 0xFFFF ;
6+
47fn vector ( c : & mut Criterion ) {
58 use tls_codec:: * ;
69 c. bench_function ( "TLS Serialize Vector" , |b| {
7- b. iter_batched (
8- || TlsVecU32 :: from ( vec ! [ 77u8 ; 65535 ] ) ,
9- |long_vector| {
10- let _serialized_long_vec = long_vector. tls_serialize_detached ( ) . unwrap ( ) ;
11- } ,
10+ b. iter_batched_ref (
11+ || ( TlsVecU32 :: from ( vec ! [ 77u8 ; N ] ) , Vec :: with_capacity ( 8 + N ) ) ,
12+ |( long_vec, buf) | long_vec. tls_serialize ( buf) . unwrap ( ) ,
1213 BatchSize :: SmallInput ,
1314 )
1415 } ) ;
1516 c. bench_function ( "TLS Deserialize Vector" , |b| {
16- b. iter_batched (
17+ b. iter_batched_ref (
1718 || {
18- let long_vector = vec ! [ 77u8 ; 65535 ] ;
19- TlsSliceU32 ( & long_vector ) . tls_serialize_detached ( ) . unwrap ( )
19+ let long_vec = vec ! [ 77u8 ; N ] ;
20+ TlsSliceU32 ( & long_vec ) . tls_serialize_detached ( ) . unwrap ( )
2021 } ,
2122 |serialized_long_vec| {
22- let _deserialized_long_vec =
23- TlsVecU32 :: < u8 > :: tls_deserialize ( & mut serialized_long_vec. as_slice ( ) ) . unwrap ( ) ;
23+ TlsVecU32 :: < u8 > :: tls_deserialize ( & mut serialized_long_vec. as_slice ( ) ) . unwrap ( )
2424 } ,
2525 BatchSize :: SmallInput ,
2626 )
@@ -30,25 +30,25 @@ fn vector(c: &mut Criterion) {
3030fn byte_vector ( c : & mut Criterion ) {
3131 use tls_codec:: * ;
3232 c. bench_function ( "TLS Serialize Byte Vector" , |b| {
33- b. iter_batched (
34- || TlsByteVecU32 :: from ( vec ! [ 77u8 ; 65535 ] ) ,
35- |long_vector| {
36- let _serialized_long_vec = long_vector. tls_serialize_detached ( ) . unwrap ( ) ;
33+ b. iter_batched_ref (
34+ || {
35+ (
36+ TlsByteVecU32 :: from ( vec ! [ 77u8 ; N ] ) ,
37+ Vec :: with_capacity ( 8 + N ) ,
38+ )
3739 } ,
40+ |( long_vec, buf) | Serialize :: tls_serialize ( long_vec, buf) . unwrap ( ) ,
3841 BatchSize :: SmallInput ,
3942 )
4043 } ) ;
4144 c. bench_function ( "TLS Deserialize Byte Vector" , |b| {
42- b. iter_batched (
45+ b. iter_batched_ref (
4346 || {
44- let long_vector = vec ! [ 77u8 ; 65535 ] ;
45- TlsByteSliceU32 ( & long_vector)
46- . tls_serialize_detached ( )
47- . unwrap ( )
47+ let long_vec = vec ! [ 77u8 ; N ] ;
48+ TlsByteSliceU32 ( & long_vec) . tls_serialize_detached ( ) . unwrap ( )
4849 } ,
4950 |serialized_long_vec| {
50- let _deserialized_long_vec =
51- TlsVecU32 :: < u8 > :: tls_deserialize ( & mut serialized_long_vec. as_slice ( ) ) . unwrap ( ) ;
51+ TlsVecU32 :: < u8 > :: tls_deserialize ( & mut serialized_long_vec. as_slice ( ) ) . unwrap ( )
5252 } ,
5353 BatchSize :: SmallInput ,
5454 )
@@ -58,13 +58,9 @@ fn byte_vector(c: &mut Criterion) {
5858fn byte_slice ( c : & mut Criterion ) {
5959 use tls_codec:: * ;
6060 c. bench_function ( "TLS Serialize Byte Slice" , |b| {
61- b. iter_batched (
62- || vec ! [ 77u8 ; 65535 ] ,
63- |long_vector| {
64- let _serialized_long_vec = TlsByteSliceU32 ( & long_vector)
65- . tls_serialize_detached ( )
66- . unwrap ( ) ;
67- } ,
61+ b. iter_batched_ref (
62+ || ( vec ! [ 77u8 ; N ] , Vec :: with_capacity ( 8 + N ) ) ,
63+ |( long_vec, buf) | TlsByteSliceU32 ( long_vec) . tls_serialize ( buf) . unwrap ( ) ,
6864 BatchSize :: SmallInput ,
6965 )
7066 } ) ;
@@ -73,12 +69,9 @@ fn byte_slice(c: &mut Criterion) {
7369fn slice ( c : & mut Criterion ) {
7470 use tls_codec:: * ;
7571 c. bench_function ( "TLS Serialize Slice" , |b| {
76- b. iter_batched (
77- || vec ! [ 77u8 ; 65535 ] ,
78- |long_vector| {
79- let _serialized_long_vec =
80- TlsSliceU32 ( & long_vector) . tls_serialize_detached ( ) . unwrap ( ) ;
81- } ,
72+ b. iter_batched_ref (
73+ || ( vec ! [ 77u8 ; N ] , Vec :: with_capacity ( 8 + N ) ) ,
74+ |( long_vec, buf) | TlsSliceU32 ( long_vec) . tls_serialize ( buf) . unwrap ( ) ,
8275 BatchSize :: SmallInput ,
8376 )
8477 } ) ;
0 commit comments