feat(tvix/glue): add nixpkgs eval benchmark

This adds a criterion.rs-based testbench into tvix-glue.

It can be invoked by running `cargo bench` from inside the `tvix-glue`
crate.
`target/criterion/report/index.html` contains nice graphs.
It's able to diff against the previous run, so you can invoke `cargo
bench` before and after a certain change to reason about the impact in
evaluation performance.

Currently, we need to create a bunch of Evaluator resources inside the
benchmark loop itself, which is a bit annoying, as it leaks into the
things we benchmark.

This should become better with b/262.

Fixes b/322.

Change-Id: I91656a308887baa1d459ed54d58baae919a4aaf2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10245
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
Florian Klink 2023-12-09 18:45:39 +02:00 committed by clbot
parent 6c87ab960d
commit 8018313b68
5 changed files with 88 additions and 0 deletions

1
tvix/Cargo.lock generated
View file

@ -3161,6 +3161,7 @@ name = "tvix-glue"
version = "0.1.0"
dependencies = [
"bytes",
"criterion",
"lazy_static",
"nix-compat",
"test-case",