1+ #[ cfg( feature = "iai" ) ]
12use iai:: black_box;
23
4+ #[ cfg( not( feature = "iai" ) ) ]
5+ use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
6+
37use web_audio_api:: context:: BaseAudioContext ;
48use web_audio_api:: context:: OfflineAudioContext ;
59use web_audio_api:: node:: { AudioNode , AudioScheduledSourceNode , PanningModelType } ;
@@ -217,6 +221,7 @@ pub fn bench_hrtf_panners() {
217221 assert_eq ! ( ctx. start_rendering_sync( ) . length( ) , SAMPLES ) ;
218222}
219223
224+ #[ cfg( feature = "iai" ) ]
220225iai:: main!(
221226 bench_ctor,
222227 bench_sine,
@@ -231,3 +236,84 @@ iai::main!(
231236 bench_analyser_node,
232237 bench_hrtf_panners,
233238) ;
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