From 4a1b021635a5a154fad2bb8a6b553d6116b57e1b Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 10 Nov 2022 16:50:16 +0100 Subject: [PATCH] Measure View on smaller examples --- implementations/rust/oo/benches/codec.rs | 32 ++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/implementations/rust/oo/benches/codec.rs b/implementations/rust/oo/benches/codec.rs index e09c5b5..8129809 100644 --- a/implementations/rust/oo/benches/codec.rs +++ b/implementations/rust/oo/benches/codec.rs @@ -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);