Skip to content

Commit 0b78e28

Browse files
committed
TEST: Update benchmarks for addition to also test Zip::apply_collect()
1 parent ec21b99 commit 0b78e28

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

benches/bench1.rs

+15-3
Original file line numberDiff line numberDiff line change
@@ -258,23 +258,35 @@ fn add_2d_zip(bench: &mut test::Bencher) {
258258
}
259259

260260
#[bench]
261-
fn add_2d_alloc(bench: &mut test::Bencher) {
261+
fn add_2d_alloc_plus(bench: &mut test::Bencher) {
262262
let a = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
263263
let b = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
264264
bench.iter(|| &a + &b);
265265
}
266266

267267
#[bench]
268-
fn add_2d_zip_alloc(bench: &mut test::Bencher) {
268+
fn add_2d_alloc_zip_uninit(bench: &mut test::Bencher) {
269269
let a = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
270270
let b = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
271271
bench.iter(|| unsafe {
272272
let mut c = Array::uninitialized(a.dim());
273-
azip!((&a in &a, &b in &b, c in &mut c) *c = a + b);
273+
azip!((&a in &a, &b in &b, c in c.raw_view_mut()) unsafe {
274+
std::ptr::write(c, a + b)
275+
});
274276
c
275277
});
276278
}
277279

280+
#[bench]
281+
fn add_2d_alloc_zip_collect(bench: &mut test::Bencher) {
282+
let a = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
283+
let b = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));
284+
bench.iter(|| {
285+
Zip::from(&a).and(&b).apply_collect(|&x, &y| x + y)
286+
});
287+
}
288+
289+
278290
#[bench]
279291
fn add_2d_assign_ops(bench: &mut test::Bencher) {
280292
let mut a = Array::<i32, _>::zeros((ADD2DSZ, ADD2DSZ));

0 commit comments

Comments
 (0)