Notes/jvq

jvq Reads Four Benchmark Harnesses and Gates File Sizes

jvq 0.3.0 takes the output of four popular benchmark harnesses as it is: Rust’s criterion from cargo bench, Google Benchmark’s JSON, pytest-benchmark and vitest bench. A project with one of them now needs only a line or three in jvq.toml to get a CI gate that runs base and head in turns. The release has binaries for Linux, macOS and Windows.

The adapters were tested on output captured from the real tools, and the recordings run each harness end to end through jvq. On a two-core cloud VM, criterion and vitest caught all 10 runs with 20% more work and raised no false alarm in 10 without. pytest-benchmark caught all 10 too, but raised one false alarm when given only a short time per test, and the write-up says so.

The release also adds a budget on file sizes: list the files a build makes, and jvq fails a pull request that grows one by more than 1%, or by an amount you set. It follows https://softdevstudio.com/jvq-gates-benchmarks-in-any-language/, which opened jvq to any language.