summary refs log tree commit diff
path: root/library/std/src/io/buffered/tests.rs
diff options
context:
space:
mode:
authorBen Kimock <kimockb@gmail.com>2020-12-19 15:02:01 -0500
committerKodrAus <kodraus@hey.com>2021-01-17 12:10:39 +1000
commit4e27ed3af19e604d7b65e130145fcecdc69fba7a (patch)
tree43137963aafb15fe3f7579ac8b4dda6c3433ef2a /library/std/src/io/buffered/tests.rs
parent8a6518427e11e6dd13d6f39663b82eb4f810ca05 (diff)
downloadrust-4e27ed3af19e604d7b65e130145fcecdc69fba7a.tar.gz
rust-4e27ed3af19e604d7b65e130145fcecdc69fba7a.zip
Add benchmark and fast path for BufReader::read_exact
Diffstat (limited to 'library/std/src/io/buffered/tests.rs')
-rw-r--r--library/std/src/io/buffered/tests.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/library/std/src/io/buffered/tests.rs b/library/std/src/io/buffered/tests.rs
index 66a64f667ba..f6c2b499567 100644
--- a/library/std/src/io/buffered/tests.rs
+++ b/library/std/src/io/buffered/tests.rs
@@ -444,6 +444,18 @@ fn bench_buffered_reader(b: &mut test::Bencher) {
 }
 
 #[bench]
+fn bench_buffered_reader_small_reads(b: &mut test::Bencher) {
+    let data = (0..u8::MAX).cycle().take(1024 * 4).collect::<Vec<_>>();
+    b.iter(|| {
+        let mut reader = BufReader::new(&data[..]);
+        let mut buf = [0u8; 4];
+        for _ in 0..1024 {
+            reader.read_exact(&mut buf).unwrap();
+        }
+    });
+}
+
+#[bench]
 fn bench_buffered_writer(b: &mut test::Bencher) {
     b.iter(|| BufWriter::new(io::sink()));
 }