1
- use criterion:: { criterion_group, criterion_main, Criterion } ;
1
+ // cargo bench -- --save-baseline parking_lot
2
+ // cargo bench -- --baseline parking_lot
3
+ // cargo bench -- --save-baseline parking_lot
4
+ // cargo bench -- --load-baseline new --baseline parking_lot
5
+ // --warm-up-time 0
6
+ // --nresamples <nresamples>
7
+ //
8
+ //
9
+
10
+ #![ allow( unused_assignments) ]
11
+ #![ allow( unused_imports) ]
2
12
3
- #[ allow( unused_imports) ]
4
13
use log:: { debug, error, info, trace, warn} ;
14
+
5
15
use std:: {
6
16
fmt:: Debug ,
7
17
sync:: { Arc , Mutex } ,
@@ -11,10 +21,10 @@ use std::{
11
21
12
22
use serde:: { Deserialize , Serialize } ;
13
23
use xcp:: * ;
14
- use xcp_type_description:: prelude:: * ;
15
-
16
24
use xcp_client:: xcp_client:: * ;
25
+ use xcp_type_description:: prelude:: * ;
17
26
27
+ use criterion:: { criterion_group, criterion_main, Criterion } ;
18
28
//-----------------------------------------------------------------------------
19
29
// Calibration parameters
20
30
@@ -112,8 +122,15 @@ async fn xcp_client(dest_addr: std::net::SocketAddr, local_addr: std::net::Socke
112
122
match current_mode {
113
123
ClientMode :: Measure => {
114
124
info ! ( "Start Measurement" ) ;
115
- // Measurement of signal
116
- xcp_client. create_measurement_object ( "signal" ) . expect ( "measurmeent signal not found" ) ;
125
+ // Measurement signals
126
+ xcp_client. create_measurement_object ( "signal1" ) . expect ( "measurement signal not found" ) ;
127
+ xcp_client. create_measurement_object ( "signal2" ) . expect ( "measurement signal not found" ) ;
128
+ xcp_client. create_measurement_object ( "signal3" ) . expect ( "measurement signal not found" ) ;
129
+ xcp_client. create_measurement_object ( "signal4" ) . expect ( "measurement signal not found" ) ;
130
+ xcp_client. create_measurement_object ( "signal5" ) . expect ( "measurement signal not found" ) ;
131
+ xcp_client. create_measurement_object ( "signal6" ) . expect ( "measurement signal not found" ) ;
132
+ xcp_client. create_measurement_object ( "signal7" ) . expect ( "measurement signal not found" ) ;
133
+ xcp_client. create_measurement_object ( "signal8" ) . expect ( "measurement signal not found" ) ;
117
134
// Measure start
118
135
xcp_client. start_measurement ( ) . await . expect ( "could not start measurement" ) ;
119
136
}
@@ -209,11 +226,25 @@ fn xcp_benchmark(c: &mut Criterion) {
209
226
let cal_page = xcp. create_calseg ( "CalPage" , & CAL_PAGE , true ) ;
210
227
211
228
// Measurement signal
212
- let mut signal: f64 = 0.0 ;
229
+ let mut signal1: u32 = 0 ;
230
+ let mut signal2: u64 = 0 ;
231
+ let mut signal3: u8 = 0 ;
232
+ let mut signal4: u16 = 0 ;
233
+ let mut signal5: u64 = 0 ;
234
+ let mut signal6: u32 = 0 ;
235
+ let mut signal7: u16 = 0 ;
236
+ let mut signal8: u64 = 0 ;
213
237
214
238
// Register a measurement event and bind it to the counter signal
215
239
let event = daq_create_event ! ( "mainloop" ) ;
216
- daq_register ! ( signal, event) ;
240
+ daq_register ! ( signal1, event) ;
241
+ daq_register ! ( signal2, event) ;
242
+ daq_register ! ( signal3, event) ;
243
+ daq_register ! ( signal4, event) ;
244
+ daq_register ! ( signal5, event) ;
245
+ daq_register ! ( signal6, event) ;
246
+ daq_register ! ( signal7, event) ;
247
+ daq_register ! ( signal8, event) ;
217
248
218
249
// Wait a moment
219
250
thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
@@ -247,17 +278,26 @@ fn xcp_benchmark(c: &mut Criterion) {
247
278
thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
248
279
249
280
// Bench measurement trigger
281
+ signal1 += 1 ;
282
+ signal2 += 1 ;
283
+ signal3 += 1 ;
284
+ signal4 += 1 ;
285
+ signal5 += 1 ;
286
+ signal6 += 1 ;
287
+ signal7 += 1 ;
288
+ signal8 += 1 ;
250
289
info ! ( "Start measurement bench" ) ;
290
+ let mut count: u32 = 0 ;
251
291
* mode. lock ( ) = ClientMode :: Measure ;
252
292
c. bench_function ( "trigger" , |b| {
253
293
b. iter ( || {
254
- signal += 1.0 ;
294
+ count += 1 ;
255
295
event. trigger ( )
256
296
} )
257
297
} ) ;
258
298
* mode. lock ( ) = ClientMode :: Wait ;
259
299
thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
260
- info ! ( "Measurement bench done, count = {}" , signal ) ;
300
+ info ! ( "Measurement bench done, count = {}" , count ) ;
261
301
262
302
// Wait a moment
263
303
thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
0 commit comments