From 8018313b6880d9fae71ba189a476502b68a26d25 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sat, 9 Dec 2023 18:45:39 +0200 Subject: 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 Tested-by: BuildkiteCI Reviewed-by: tazjin --- tvix/glue/Cargo.toml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tvix/glue/Cargo.toml') diff --git a/tvix/glue/Cargo.toml b/tvix/glue/Cargo.toml index 4469c3bab3a0..90ad2752691d 100644 --- a/tvix/glue/Cargo.toml +++ b/tvix/glue/Cargo.toml @@ -18,5 +18,10 @@ thiserror = "1.0.38" git = "https://github.com/tvlfyi/wu-manber.git" [dev-dependencies] +criterion = { version = "0.5", features = ["html_reports"] } lazy_static = "1.4.0" test-case = "2.2.2" + +[[bench]] +name = "eval" +harness = false -- cgit 1.4.1