Skip to content

Commit 56b1e1b

Browse files
committed
Remove deprecation in criterion
ParameterizedBenchmark was deprecated and replaced with BenchmarkGroup.
1 parent 97bdccb commit 56b1e1b

File tree

4 files changed

+85
-73
lines changed

4 files changed

+85
-73
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ indexmap = "1.6.2"
2626

2727
[dev-dependencies]
2828
ndarray = { version = "0.14", features = ["approx"] }
29-
criterion = "0.3"
29+
criterion = "0.3.4"
3030
quickcheck = { version = "0.9.2", default-features = false }
3131
ndarray-rand = "0.13.0"
3232
approx = "0.4"

benches/deviation.rs

+15-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use criterion::{
2-
black_box, criterion_group, criterion_main, AxisScale, Criterion, ParameterizedBenchmark,
2+
black_box, criterion_group, criterion_main, AxisScale, Criterion,
33
PlotConfiguration,
44
};
55
use ndarray::prelude::*;
@@ -9,18 +9,21 @@ use ndarray_rand::rand_distr::Uniform;
99

1010
fn sq_l2_dist(c: &mut Criterion) {
1111
let lens = vec![10, 100, 1000, 10000];
12-
let benchmark = ParameterizedBenchmark::new(
13-
"sq_l2_dist",
14-
|bencher, &len| {
15-
let data = Array::random(len, Uniform::new(0.0, 1.0));
16-
let data2 = Array::random(len, Uniform::new(0.0, 1.0));
12+
let mut group = c.benchmark_group("sq_l2_dist");
13+
group.plot_config(
14+
PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
15+
for len in &lens {
16+
group.bench_with_input(
17+
format!("{}", len),
18+
len,
19+
|b, &len| {
20+
let data = Array::random(len, Uniform::new(0.0, 1.0));
21+
let data2 = Array::random(len, Uniform::new(0.0, 1.0));
1722

18-
bencher.iter(|| black_box(data.sq_l2_dist(&data2).unwrap()))
19-
},
20-
lens,
21-
)
22-
.plot_config(PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
23-
c.bench("sq_l2_dist", benchmark);
23+
b.iter(|| black_box(data.sq_l2_dist(&data2).unwrap()))
24+
});
25+
}
26+
group.finish();
2427
}
2528

2629
criterion_group! {

benches/sort.rs

+47-41
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,63 @@
11
use criterion::{
22
black_box, criterion_group, criterion_main, AxisScale, BatchSize, Criterion,
3-
ParameterizedBenchmark, PlotConfiguration,
3+
PlotConfiguration,
44
};
55
use ndarray::prelude::*;
66
use ndarray_stats::Sort1dExt;
77
use rand::prelude::*;
88

99
fn get_from_sorted_mut(c: &mut Criterion) {
1010
let lens = vec![10, 100, 1000, 10000];
11-
let benchmark = ParameterizedBenchmark::new(
12-
"get_from_sorted_mut",
13-
|bencher, &len| {
14-
let mut rng = StdRng::seed_from_u64(42);
15-
let mut data: Vec<_> = (0..len).collect();
16-
data.shuffle(&mut rng);
17-
let indices: Vec<_> = (0..len).step_by(len / 10).collect();
18-
bencher.iter_batched(
19-
|| Array1::from(data.clone()),
20-
|mut arr| {
21-
for &i in &indices {
22-
black_box(arr.get_from_sorted_mut(i));
23-
}
24-
},
25-
BatchSize::SmallInput,
26-
)
27-
},
28-
lens,
29-
)
30-
.plot_config(PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
31-
c.bench("get_from_sorted_mut", benchmark);
11+
let mut group = c.benchmark_group("get_from_sorted_mut");
12+
group.plot_config(
13+
PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
14+
for len in &lens {
15+
group.bench_with_input(
16+
format!("{}", len),
17+
len,
18+
|b, &len| {
19+
let mut rng = StdRng::seed_from_u64(42);
20+
let mut data: Vec<_> = (0..len).collect();
21+
data.shuffle(&mut rng);
22+
let indices: Vec<_> = (0..len).step_by(len / 10).collect();
23+
b.iter_batched(
24+
|| Array1::from(data.clone()),
25+
|mut arr| {
26+
for &i in &indices {
27+
black_box(arr.get_from_sorted_mut(i));
28+
}
29+
},
30+
BatchSize::SmallInput,
31+
)
32+
});
33+
}
34+
group.finish();
3235
}
3336

3437
fn get_many_from_sorted_mut(c: &mut Criterion) {
3538
let lens = vec![10, 100, 1000, 10000];
36-
let benchmark = ParameterizedBenchmark::new(
37-
"get_many_from_sorted_mut",
38-
|bencher, &len| {
39-
let mut rng = StdRng::seed_from_u64(42);
40-
let mut data: Vec<_> = (0..len).collect();
41-
data.shuffle(&mut rng);
42-
let indices: Array1<_> = (0..len).step_by(len / 10).collect();
43-
bencher.iter_batched(
44-
|| Array1::from(data.clone()),
45-
|mut arr| {
46-
black_box(arr.get_many_from_sorted_mut(&indices));
47-
},
48-
BatchSize::SmallInput,
49-
)
50-
},
51-
lens,
52-
)
53-
.plot_config(PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
54-
c.bench("get_many_from_sorted_mut", benchmark);
39+
let mut group = c.benchmark_group("get_many_from_sorted_mut");
40+
group.plot_config(
41+
PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
42+
for len in &lens {
43+
group.bench_with_input(
44+
format!("{}", len),
45+
len,
46+
|b, &len| {
47+
let mut rng = StdRng::seed_from_u64(42);
48+
let mut data: Vec<_> = (0..len).collect();
49+
data.shuffle(&mut rng);
50+
let indices: Array1<_> = (0..len).step_by(len / 10).collect();
51+
b.iter_batched(
52+
|| Array1::from(data.clone()),
53+
|mut arr| {
54+
black_box(arr.get_many_from_sorted_mut(&indices));
55+
},
56+
BatchSize::SmallInput,
57+
)
58+
});
59+
}
60+
group.finish();
5561
}
5662

5763
criterion_group! {

benches/summary_statistics.rs

+22-19
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use criterion::{
22
black_box, criterion_group, criterion_main, AxisScale, BatchSize, Criterion,
3-
ParameterizedBenchmark, PlotConfiguration,
3+
PlotConfiguration,
44
};
55
use ndarray::prelude::*;
66
use ndarray_rand::RandomExt;
@@ -9,24 +9,27 @@ use ndarray_rand::rand_distr::Uniform;
99

1010
fn weighted_std(c: &mut Criterion) {
1111
let lens = vec![10, 100, 1000, 10000];
12-
let benchmark = ParameterizedBenchmark::new(
13-
"weighted_std",
14-
|bencher, &len| {
15-
let data = Array::random(len, Uniform::new(0.0, 1.0));
16-
let mut weights = Array::random(len, Uniform::new(0.0, 1.0));
17-
weights /= weights.sum();
18-
bencher.iter_batched(
19-
|| data.clone(),
20-
|arr| {
21-
black_box(arr.weighted_std(&weights, 0.0).unwrap());
22-
},
23-
BatchSize::SmallInput,
24-
)
25-
},
26-
lens,
27-
)
28-
.plot_config(PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
29-
c.bench("weighted_std", benchmark);
12+
let mut group = c.benchmark_group("weighted_std");
13+
group.plot_config(
14+
PlotConfiguration::default().summary_scale(AxisScale::Logarithmic));
15+
for len in &lens {
16+
group.bench_with_input(
17+
format!("{}", len),
18+
len,
19+
|b, &len| {
20+
let data = Array::random(len, Uniform::new(0.0, 1.0));
21+
let mut weights = Array::random(len, Uniform::new(0.0, 1.0));
22+
weights /= weights.sum();
23+
b.iter_batched(
24+
|| data.clone(),
25+
|arr| {
26+
black_box(arr.weighted_std(&weights, 0.0).unwrap());
27+
},
28+
BatchSize::SmallInput,
29+
)
30+
});
31+
}
32+
group.finish();
3033
}
3134

3235
criterion_group! {

0 commit comments

Comments
 (0)