use criterion::{criterion_group, criterion_main, Criterion}; use pprof::criterion::{Output, PProfProfiler}; use shex_compact::ShExParser; fn parse() { let str = r#" { [ 1 ]; [ 2 ]; [ 3 ] }"#; ShExParser::parse(str, None).unwrap(); } fn shex_parse_benchmark(c: &mut Criterion) { // test once to make sure it parses correctly the first time parse(); // real benchmark c.bench_function("shex_parse", |b| b.iter(parse)); } criterion_group! { name = benches; config = Criterion::default().with_profiler(PProfProfiler::new(20, Output::Flamegraph(None))); targets = shex_parse_benchmark } criterion_main!(benches);