1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
#![feature(test)]
extern crate test;
use futures::{executor, TryStreamExt};
use futures_codec::{FramedRead, LinesCodec};
use std::io::Cursor;
#[bench]
fn short(b: &mut test::Bencher) {
let data = [
["a"; 16].join("b"),
["b"; 16].join("c"),
["c"; 16].join("d"),
]
.join("\n");
b.iter(|| {
executor::block_on(async {
let read = Cursor::new(test::black_box(&data));
let mut framed = FramedRead::new(read, LinesCodec {});
framed.try_next().await.unwrap();
framed.try_next().await.unwrap();
framed.try_next().await.is_ok()
})
})
}
#[bench]
fn medium(b: &mut test::Bencher) {
let data = [
["a"; 128].join("b"),
["b"; 128].join("c"),
["c"; 128].join("d"),
]
.join("\n");
b.iter(|| {
executor::block_on(async {
let read = Cursor::new(test::black_box(&data));
let mut framed = FramedRead::new(read, LinesCodec {});
framed.try_next().await.unwrap();
framed.try_next().await.unwrap();
framed.try_next().await.is_ok()
})
})
}
#[bench]
fn long(b: &mut test::Bencher) {
let data = [
["a"; 2048].join("b"),
["b"; 2048].join("c"),
["c"; 2048].join("d"),
]
.join("\n");
b.iter(|| {
executor::block_on(async {
let read = Cursor::new(test::black_box(&data));
let mut framed = FramedRead::new(read, LinesCodec {});
framed.try_next().await.unwrap();
framed.try_next().await.unwrap();
framed.try_next().await.is_ok()
})
})
}
|