diff --git a/benches/terminator.rs b/benches/terminator.rs index 5442a0e9ff571074c72e70139c3ba9c401ec2044..d1cde0f280bb1636d480ac2b248fd90b59047b97 100644 --- a/benches/terminator.rs +++ b/benches/terminator.rs @@ -1,30 +1,29 @@ #[macro_use] extern crate criterion; -use criterion::Criterion; +use criterion::*; use ion_shell::parser::Terminator; const TEXT: &str = include_str!("test.ion"); const EOF: &str = include_str!("herestring.ion"); fn criterion_benchmark(c: &mut Criterion) { - c.bench_function("terminator", |b| { - b.iter(|| { - let mut bytes = TEXT.bytes().peekable(); - while bytes.peek().is_some() { - let stmt = Terminator::new(&mut bytes).terminate(); - } - }) - }); - - c.bench_function("terminator EOF", |b| { - b.iter(|| { - let mut bytes = EOF.bytes().peekable(); - while bytes.peek().is_some() { - let stmt = Terminator::new(&mut bytes).terminate(); - } - }) - }); + c.bench( + "terminator-throughput", + ParameterizedBenchmark::new( + "terminator", + |b, script| { + b.iter(|| { + let mut bytes = script.bytes().peekable(); + while bytes.peek().is_some() { + let stmt = Terminator::new(&mut bytes).terminate(); + } + }) + }, + vec![TEXT, EOF], + ) + .throughput(|script| Throughput::Bytes(script.len() as u32)), + ); } criterion_group!(benches, criterion_benchmark);