1
+ use bytes:: Bytes ;
1
2
use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
2
3
use engineioxide:: sid:: Sid ;
3
4
use socketioxide:: {
4
5
packet:: { Packet , PacketData } ,
5
- ProtocolVersion ,
6
+ PayloadValue , ProtocolVersion ,
6
7
} ;
7
8
fn criterion_benchmark ( c : & mut Criterion ) {
8
9
c. bench_function ( "Encode packet connect on /" , |b| {
@@ -25,15 +26,15 @@ fn criterion_benchmark(c: &mut Criterion) {
25
26
const DATA : & str = r#"{"_placeholder":true,"num":0}"# ;
26
27
const BINARY : [ u8 ; 10 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ;
27
28
c. bench_function ( "Encode packet event on /" , |b| {
28
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
29
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
29
30
let packet = Packet :: event ( black_box ( "/" ) , black_box ( "event" ) , black_box ( data. clone ( ) ) ) ;
30
31
b. iter ( || {
31
32
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
32
33
} )
33
34
} ) ;
34
35
35
36
c. bench_function ( "Encode packet event on /custom_nsp" , |b| {
36
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
37
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
37
38
let packet = Packet :: event (
38
39
black_box ( "custom_nsp" ) ,
39
40
black_box ( "event" ) ,
@@ -45,7 +46,7 @@ fn criterion_benchmark(c: &mut Criterion) {
45
46
} ) ;
46
47
47
48
c. bench_function ( "Encode packet event with ack on /" , |b| {
48
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
49
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
49
50
let packet = Packet :: event ( black_box ( "/" ) , black_box ( "event" ) , black_box ( data. clone ( ) ) ) ;
50
51
match packet. inner {
51
52
PacketData :: Event ( _, _, mut ack) => ack. insert ( black_box ( 0 ) ) ,
@@ -57,7 +58,7 @@ fn criterion_benchmark(c: &mut Criterion) {
57
58
} ) ;
58
59
59
60
c. bench_function ( "Encode packet event with ack on /custom_nsp" , |b| {
60
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
61
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
61
62
let packet = Packet :: event (
62
63
black_box ( "/custom_nsp" ) ,
63
64
black_box ( "event" ) ,
@@ -73,15 +74,15 @@ fn criterion_benchmark(c: &mut Criterion) {
73
74
} ) ;
74
75
75
76
c. bench_function ( "Encode packet ack on /" , |b| {
76
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
77
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
77
78
let packet = Packet :: ack ( black_box ( "/" ) , black_box ( data. clone ( ) ) , black_box ( 0 ) ) ;
78
79
b. iter ( || {
79
80
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
80
81
} )
81
82
} ) ;
82
83
83
84
c. bench_function ( "Encode packet ack on /custom_nsp" , |b| {
84
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
85
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
85
86
let packet = Packet :: ack (
86
87
black_box ( "/custom_nsp" ) ,
87
88
black_box ( data. clone ( ) ) ,
@@ -93,51 +94,51 @@ fn criterion_benchmark(c: &mut Criterion) {
93
94
} ) ;
94
95
95
96
c. bench_function ( "Encode packet binary event (b64) on /" , |b| {
96
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
97
- let packet = Packet :: bin_event (
97
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
98
+ let packet = Packet :: bin_event_with_payloads (
98
99
black_box ( "/" ) ,
99
100
black_box ( "event" ) ,
100
101
black_box ( data. clone ( ) ) ,
101
- black_box ( vec ! [ BINARY . to_vec ( ) . clone ( ) ] ) ,
102
+ black_box ( vec ! [ Bytes :: from_static ( & BINARY ) ] ) ,
102
103
) ;
103
104
b. iter ( || {
104
105
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
105
106
} )
106
107
} ) ;
107
108
108
109
c. bench_function ( "Encode packet binary event (b64) on /custom_nsp" , |b| {
109
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
110
- let packet = Packet :: bin_event (
110
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
111
+ let packet = Packet :: bin_event_with_payloads (
111
112
black_box ( "/custom_nsp" ) ,
112
113
black_box ( "event" ) ,
113
114
black_box ( data. clone ( ) ) ,
114
- black_box ( vec ! [ BINARY . to_vec ( ) . clone ( ) ] ) ,
115
+ black_box ( vec ! [ Bytes :: from_static ( & BINARY ) ] ) ,
115
116
) ;
116
117
b. iter ( || {
117
118
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
118
119
} )
119
120
} ) ;
120
121
121
122
c. bench_function ( "Encode packet binary ack (b64) on /" , |b| {
122
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
123
- let packet = Packet :: bin_ack (
123
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
124
+ let packet = Packet :: bin_ack_with_payloads (
124
125
black_box ( "/" ) ,
125
126
black_box ( data. clone ( ) ) ,
126
- black_box ( vec ! [ BINARY . to_vec( ) . clone( ) ] ) ,
127
127
black_box ( 0 ) ,
128
+ black_box ( vec ! [ Bytes :: from_static( & BINARY ) ] ) ,
128
129
) ;
129
130
b. iter ( || {
130
131
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
131
132
} )
132
133
} ) ;
133
134
134
135
c. bench_function ( "Encode packet binary ack (b64) on /custom_nsp" , |b| {
135
- let data = serde_json :: to_value ( DATA ) . unwrap ( ) ;
136
- let packet = Packet :: bin_ack (
136
+ let data = PayloadValue :: from_data ( DATA ) . unwrap ( ) ;
137
+ let packet = Packet :: bin_ack_with_payloads (
137
138
black_box ( "/custom_nsp" ) ,
138
139
black_box ( data. clone ( ) ) ,
139
- black_box ( vec ! [ BINARY . to_vec( ) . clone( ) ] ) ,
140
140
black_box ( 0 ) ,
141
+ black_box ( vec ! [ Bytes :: from_static( & BINARY ) ] ) ,
141
142
) ;
142
143
b. iter ( || {
143
144
let _: String = packet. clone ( ) . try_into ( ) . unwrap ( ) ;
0 commit comments