diff options
Diffstat (limited to 'vendor/weezl/benches')
-rw-r--r-- | vendor/weezl/benches/msb8.rs | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/vendor/weezl/benches/msb8.rs b/vendor/weezl/benches/msb8.rs deleted file mode 100644 index a7e5dc5..0000000 --- a/vendor/weezl/benches/msb8.rs +++ /dev/null @@ -1,54 +0,0 @@ -extern crate criterion; -extern crate weezl; - -use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion, Throughput}; -use std::fs; -use weezl::{decode::Decoder, BitOrder, LzwStatus}; - -pub fn criterion_benchmark(c: &mut Criterion, file: &str) { - let data = fs::read(file).expect("Benchmark input not found"); - let mut group = c.benchmark_group("msb-8"); - let id = BenchmarkId::new(file, data.len()); - let mut outbuf = vec![0; 1 << 26]; // 64MB, what wuff uses.. - let mut decode_once = |data: &[u8]| { - let mut decoder = Decoder::new(BitOrder::Msb, 8); - let mut written = 0; - let outbuf = outbuf.as_mut_slice(); - let mut data = data; - loop { - let result = decoder.decode_bytes(data, &mut outbuf[..]); - let done = result.status.expect("Error"); - data = &data[result.consumed_in..]; - written += result.consumed_out; - black_box(&outbuf[..result.consumed_out]); - if let LzwStatus::Done = done { - break; - } - if let LzwStatus::NoProgress = done { - panic!("Need to make progress"); - } - } - written - }; - group.throughput(Throughput::Bytes(decode_once(&data) as u64)); - group.bench_with_input(id, &data, |b, data| { - b.iter(|| { - decode_once(data); - }) - }); -} - -pub fn bench_toml(c: &mut Criterion) { - criterion_benchmark(c, "benches/Cargo-8-msb.lzw"); -} - -pub fn bench_binary(c: &mut Criterion) { - criterion_benchmark(c, "benches/binary-8-msb.lzw"); -} - -pub fn bench_lib(c: &mut Criterion) { - criterion_benchmark(c, "benches/lib-8-msb.lzw"); -} - -criterion_group!(benches, bench_toml, bench_binary, bench_lib); -criterion_main!(benches); |