aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2021-10-09 12:38:07 -0400
committerJack O'Connor <[email protected]>2021-10-09 12:38:07 -0400
commitb65b1652668f1d57762b037764641634bb52037f (patch)
treed802ce868b7afd90768c57132ce026a7ba8e2a43
parent8e5ba44c934ce3cff181398851cbf3bf2f03f08c (diff)
-rw-r--r--benches/bench.rs327
1 files changed, 325 insertions, 2 deletions
diff --git a/benches/bench.rs b/benches/bench.rs
index 1b6c953..e38cb8e 100644
--- a/benches/bench.rs
+++ b/benches/bench.rs
@@ -516,7 +516,8 @@ fn bench_two_updates(b: &mut Bencher) {
});
}
-const BIG: usize = 4 * 1024 * KIB;
+const BIG: usize = 1 << 25;
+const BUF: usize = 1 << 18;
#[bench]
#[cfg(feature = "rayon")]
@@ -528,5 +529,327 @@ fn bench_rayon_recursive_big(b: &mut Bencher) {
#[cfg(feature = "rayon")]
fn bench_rayon_reader_big(b: &mut Bencher) {
let mut input = RandomInput::new(b, BIG);
- b.iter(|| blake3::hash_reader_rayon(input.get(), 1 << 15, 2 * num_cpus::get()));
+ b.iter(|| blake3::hash_reader_rayon(input.get(), BUF, 2 * num_cpus::get()));
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_big(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_10(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 10;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_11(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 11;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_12(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 12;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_13(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 13;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_14(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 14;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_15(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 15;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_16(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 16;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_17(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 17;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_18(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 18;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_19(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 19;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_20(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 20;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_21(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 21;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_22(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 22;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_23(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 23;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_24(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 24;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
+}
+
+#[bench]
+#[cfg(feature = "rayon")]
+fn bench_just_read_25(b: &mut Bencher) {
+ use std::io::prelude::*;
+
+ const BUF: usize = 1 << 25;
+ let mut input = RandomInput::new(b, BIG);
+ b.iter(|| {
+ let reader: &mut &[u8] = &mut input.get();
+ let mut v = Vec::with_capacity(BUF);
+ loop {
+ let n = reader.take(BUF as u64).read_to_end(&mut v).unwrap();
+ if n < BUF {
+ break;
+ }
+ }
+ });
}