1
+ #[ cfg( feature = "iai" ) ]
1
2
use iai:: black_box;
2
3
4
+ #[ cfg( not( feature = "iai" ) ) ]
5
+ use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
6
+
3
7
use web_audio_api:: context:: BaseAudioContext ;
4
8
use web_audio_api:: context:: OfflineAudioContext ;
5
9
use web_audio_api:: node:: { AudioNode , AudioScheduledSourceNode , PanningModelType } ;
@@ -217,6 +221,7 @@ pub fn bench_hrtf_panners() {
217
221
assert_eq ! ( ctx. start_rendering_sync( ) . length( ) , SAMPLES ) ;
218
222
}
219
223
224
+ #[ cfg( feature = "iai" ) ]
220
225
iai:: main!(
221
226
bench_ctor,
222
227
bench_sine,
@@ -231,3 +236,84 @@ iai::main!(
231
236
bench_analyser_node,
232
237
bench_hrtf_panners,
233
238
) ;
239
+
240
+ #[ cfg( not( feature = "iai" ) ) ]
241
+ fn criterion_ctor ( c : & mut Criterion ) {
242
+ c. bench_function ( "bench_ctor" , |b| b. iter ( || bench_ctor ( ) ) ) ;
243
+ }
244
+ #[ cfg( not( feature = "iai" ) ) ]
245
+ fn criterion_sine ( c : & mut Criterion ) {
246
+ c. bench_function ( "bench_sine" , |b| b. iter ( || bench_sine ( ) ) ) ;
247
+ }
248
+ #[ cfg( not( feature = "iai" ) ) ]
249
+ fn criterion_sine_gain ( c : & mut Criterion ) {
250
+ c. bench_function ( "bench_sine_gain" , |b| b. iter ( || bench_sine_gain ( ) ) ) ;
251
+ }
252
+ #[ cfg( not( feature = "iai" ) ) ]
253
+ fn criterion_sine_gain_delay ( c : & mut Criterion ) {
254
+ c. bench_function ( "bench_sine_gain_delay" , |b| {
255
+ b. iter ( || bench_sine_gain_delay ( ) )
256
+ } ) ;
257
+ }
258
+ #[ cfg( not( feature = "iai" ) ) ]
259
+ fn criterion_buffer_src ( c : & mut Criterion ) {
260
+ c. bench_function ( "bench_buffer_src" , |b| b. iter ( || bench_buffer_src ( ) ) ) ;
261
+ }
262
+ #[ cfg( not( feature = "iai" ) ) ]
263
+ fn criterion_buffer_src_delay ( c : & mut Criterion ) {
264
+ c. bench_function ( "bench_buffer_src_delay" , |b| {
265
+ b. iter ( || bench_buffer_src_delay ( ) )
266
+ } ) ;
267
+ }
268
+ #[ cfg( not( feature = "iai" ) ) ]
269
+ fn criterion_buffer_src_iir ( c : & mut Criterion ) {
270
+ c. bench_function ( "bench_buffer_src_iir" , |b| {
271
+ b. iter ( || bench_buffer_src_iir ( ) )
272
+ } ) ;
273
+ }
274
+ #[ cfg( not( feature = "iai" ) ) ]
275
+ fn criterion_buffer_src_biquad ( c : & mut Criterion ) {
276
+ c. bench_function ( "bench_buffer_src_biquad" , |b| {
277
+ b. iter ( || bench_buffer_src_biquad ( ) )
278
+ } ) ;
279
+ }
280
+ #[ cfg( not( feature = "iai" ) ) ]
281
+ fn criterion_stereo_positional ( c : & mut Criterion ) {
282
+ c. bench_function ( "bench_stereo_positional" , |b| {
283
+ b. iter ( || bench_stereo_positional ( ) )
284
+ } ) ;
285
+ }
286
+ #[ cfg( not( feature = "iai" ) ) ]
287
+ fn criterion_stereo_panning_automation ( c : & mut Criterion ) {
288
+ c. bench_function ( "bench_stereo_panning_automation" , |b| {
289
+ b. iter ( || bench_stereo_panning_automation ( ) )
290
+ } ) ;
291
+ }
292
+ #[ cfg( not( feature = "iai" ) ) ]
293
+ fn criterion_analyser_node ( c : & mut Criterion ) {
294
+ c. bench_function ( "bench_analyser_node" , |b| b. iter ( || bench_analyser_node ( ) ) ) ;
295
+ }
296
+ #[ cfg( not( feature = "iai" ) ) ]
297
+ fn criterion_hrtf_panners ( c : & mut Criterion ) {
298
+ c. bench_function ( "bench_hrtf_panners" , |b| b. iter ( || bench_hrtf_panners ( ) ) ) ;
299
+ }
300
+
301
+ #[ cfg( not( feature = "iai" ) ) ]
302
+ criterion_group ! (
303
+ benches,
304
+ criterion_ctor,
305
+ criterion_sine,
306
+ criterion_sine_gain,
307
+ criterion_sine_gain_delay,
308
+ criterion_buffer_src,
309
+ criterion_buffer_src_delay,
310
+ criterion_buffer_src_iir,
311
+ criterion_buffer_src_biquad,
312
+ criterion_stereo_positional,
313
+ criterion_stereo_panning_automation,
314
+ criterion_analyser_node,
315
+ criterion_hrtf_panners
316
+ ) ;
317
+
318
+ #[ cfg( not( feature = "iai" ) ) ]
319
+ criterion_main ! ( benches) ;
0 commit comments