Measure View on smaller examples

This commit is contained in:
Tony Garnock-Jones 2022-11-10 16:50:16 +01:00
parent 7cb0877190
commit 4a1b021635
1 changed files with 30 additions and 2 deletions

View File

@ -10,6 +10,7 @@ use oo::PlainValue;
use oo::Reader;
use oo::ValueImpl;
use oo::packed::annotated_iovalue_from_bytes;
use oo::packed::view::View;
use oo::packed::view::ViewIterator;
use std::fs::File;
use std::io::Read;
@ -28,6 +29,22 @@ pub fn bench_decoder_bytes(c: &mut Criterion) {
|| annotated_iovalue_from_bytes(&bs[..]).unwrap()));
}
pub fn bench_decoder_bytes_view(c: &mut Criterion) {
let mut fh = File::open("../../../tests/samples.bin").unwrap();
let mut bs = vec![];
fh.read_to_end(&mut bs).ok();
c.bench_function("(oo) view-decode samples.bin via bytes", |b| b.iter_with_large_drop(
|| View::new(&bs).unwrap()));
}
pub fn bench_decoder_bytes_view_iovalue(c: &mut Criterion) {
let mut fh = File::open("../../../tests/samples.bin").unwrap();
let mut bs = vec![];
fh.read_to_end(&mut bs).ok();
c.bench_function("(oo) iovalue-view-decode samples.bin via bytes", |b| b.iter_with_large_drop(
|| oo::iovalue(View::new(&bs).unwrap().value_clone())));
}
pub fn bench_decoder_file(c: &mut Criterion) {
let mut fh = File::open("../../../tests/samples.bin").unwrap();
c.bench_function("(oo) decode samples.bin via file", |b| b.iter_with_large_drop(|| {
@ -51,6 +68,15 @@ pub fn bench_encoder(c: &mut Criterion) {
|| PackedWriter::encode_iovalue(&v).unwrap()));
}
pub fn bench_encoder_view(c: &mut Criterion) {
let mut fh = File::open("../../../tests/samples.bin").unwrap();
let mut bs = vec![];
fh.read_to_end(&mut bs).ok();
let v = oo::iovalue(View::new(&bs).unwrap().value_clone());
c.bench_function("(oo) view-encode samples.bin", |b| b.iter_with_large_drop(
|| PackedWriter::encode_iovalue(&v).unwrap()));
}
pub fn large_testdata_decoder_with_ann(c: &mut Criterion) {
c.bench_function("(oo) decode testdata.bin with annotations", |b| {
let mut fh = File::open("benches/testdata.bin").unwrap();
@ -189,8 +215,10 @@ pub fn large_testdata_encoder_view_deepcopy(c: &mut Criterion) {
}
criterion_group!(codec,
bench_decoder_bytes, bench_decoder_file, bench_decoder_buffered_file,
bench_encoder);
bench_decoder_bytes, bench_decoder_bytes_view, bench_decoder_bytes_view_iovalue,
bench_decoder_file,
bench_decoder_buffered_file,
bench_encoder, bench_encoder_view);
criterion_group!{
name = large_testdata;
config = Criterion::default().sample_size(10);