forked from syndicate-lang/preserves
Benchmark various readers for decoding
This commit is contained in:
parent
e01f960ddc
commit
21cc7595ae
|
@ -2,19 +2,37 @@ use criterion::{criterion_group, criterion_main, Criterion};
|
||||||
use preserves::value::{self, decoder, encoder};
|
use preserves::value::{self, decoder, encoder};
|
||||||
use preserves::{de, ser};
|
use preserves::{de, ser};
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
use std::io::BufReader;
|
||||||
|
use std::io::{Seek, SeekFrom};
|
||||||
|
|
||||||
#[path = "../tests/samples/mod.rs"]
|
#[path = "../tests/samples/mod.rs"]
|
||||||
mod samples;
|
mod samples;
|
||||||
use samples::TestCases;
|
use samples::TestCases;
|
||||||
|
|
||||||
pub fn bench_decoder(c: &mut Criterion) {
|
pub fn bench_decoder_bytes(c: &mut Criterion) {
|
||||||
let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap();
|
let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap();
|
||||||
let mut bs = vec![];
|
let mut bs = vec![];
|
||||||
fh.read_to_end(&mut bs).ok();
|
fh.read_to_end(&mut bs).ok();
|
||||||
c.bench_function("decode samples.bin", |b| b.iter(
|
c.bench_function("decode samples.bin via bytes", |b| b.iter(
|
||||||
|| decoder::from_bytes(&bs[..]).demand_next().unwrap()));
|
|| decoder::from_bytes(&bs[..]).demand_next().unwrap()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn bench_decoder_file(c: &mut Criterion) {
|
||||||
|
let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap();
|
||||||
|
c.bench_function("decode samples.bin via file", |b| b.iter(|| {
|
||||||
|
fh.seek(SeekFrom::Start(0)).ok();
|
||||||
|
decoder::from_read(&mut fh).demand_next().unwrap()
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn bench_decoder_buffered_file(c: &mut Criterion) {
|
||||||
|
let mut fh = BufReader::new(std::fs::File::open("../../tests/samples.bin").unwrap());
|
||||||
|
c.bench_function("decode samples.bin via buffered file", |b| b.iter(|| {
|
||||||
|
fh.seek(SeekFrom::Start(0)).ok();
|
||||||
|
decoder::from_read(&mut fh).demand_next().unwrap()
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
pub fn bench_encoder(c: &mut Criterion) {
|
pub fn bench_encoder(c: &mut Criterion) {
|
||||||
let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap();
|
let mut fh = std::fs::File::open("../../tests/samples.bin").unwrap();
|
||||||
let v = decoder::from_read(&mut fh).demand_next().unwrap();
|
let v = decoder::from_read(&mut fh).demand_next().unwrap();
|
||||||
|
@ -61,7 +79,9 @@ pub fn bench_ser_encoder(c: &mut Criterion) {
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
criterion_group!(codec, bench_decoder, bench_encoder);
|
criterion_group!(codec,
|
||||||
|
bench_decoder_bytes, bench_decoder_file, bench_decoder_buffered_file,
|
||||||
|
bench_encoder);
|
||||||
criterion_group!(serde, bench_de, bench_ser);
|
criterion_group!(serde, bench_de, bench_ser);
|
||||||
criterion_group!(codec_then_serde, bench_decoder_de, bench_ser_encoder);
|
criterion_group!(codec_then_serde, bench_decoder_de, bench_ser_encoder);
|
||||||
criterion_main!(codec, serde, codec_then_serde);
|
criterion_main!(codec, serde, codec_then_serde);
|
||||||
|
|
Loading…
Reference in New Issue