Covers the ShEx pipeline. Cases are vendored under bench-shex/corpus/{small,large}.zip, each containing a manifest.toml and its case files. On first use the zips are extracted into target/bench-shex-corpus/{small,large}/ (respecting CARGO_TARGET_TMPDIR / CARGO_TARGET_DIR).
- small: minimal cases from shexTest (single-shape schemas, tiny RDF). Times in the µs–ms range.
- large: real-world schemas (FHIR R5). Times in the ms–s range.
Each Criterion benchmark splits into two groups (<stage>_small, <stage>_large) so plots in each group share a comparable scale.
| Bench | What it measures |
|---|---|
parse |
ShExC text to AST |
compile |
AST to IR |
validator_init |
IR to Validator (negation-cycle check) |
validate |
Run validation |
end_to_end |
Full rudof_lib flow: load → validate → serialize |
validate_precompiled |
Same case, two variants: from_source (ShExC) vs from_precompiled (.rsir cache) |
All benches:
cargo bench -p bench-shexA specific stage:
cargo bench -p bench-shex --bench validateA subset by group or case:
cargo bench -p bench-shex --bench compile -- compile_small
cargo bench -p bench-shex --bench validate -- 'large/fhir-r5'HTML reports are written to target/criterion/; open target/criterion/report/index.html for the ov