From 1e8f41f1af42c99cbabe4ee24e39a17da5063f61 Mon Sep 17 00:00:00 2001 From: Roman Proskuryakov Date: Fri, 30 Aug 2019 00:34:25 +0300 Subject: [PATCH] Add benches for stream::fold --- benches/stream.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/benches/stream.rs b/benches/stream.rs index 14eb4eb..86d879f 100644 --- a/benches/stream.rs +++ b/benches/stream.rs @@ -113,11 +113,38 @@ fn bench_stream_map(c: &mut Criterion) { }); } +fn bench_stream_fold(c: &mut Criterion) { + executor::block_on(async { + let mut group = c.benchmark_group("stream::fold"); + + group.bench_function("futures", |b| { + b.iter(async move || { + use futures::stream::{iter, StreamExt}; + let stream = iter(1..=1000); + let acc = stream.fold(0, async move |acc, x| acc + x); + black_box(acc).await + }) + }); + group.bench_function("async_combinators", |b| { + b.iter(async move || { + use futures::stream::iter; + use futures_async_combinators::stream::fold; + let stream = iter(1..=1000); + let acc = fold(stream, 0, async move |acc, x| acc + x); + black_box(acc).await + }) + }); + + group.finish(); + }); +} + criterion_group!( benches, bench_stream_iter, bench_stream_next, bench_stream_collect, bench_stream_map, + bench_stream_fold, ); criterion_main!(benches);