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:
parent
6c87ab960d
commit
8018313b68
5 changed files with 88 additions and 0 deletions
|
|
@ -35,4 +35,13 @@ pkgs.mkShell {
|
|||
pkgs.libiconv
|
||||
pkgs.buildPackages.darwin.apple_sdk.frameworks.Security
|
||||
];
|
||||
|
||||
# Set TVIX_BENCH_NIX_PATH to a somewhat pinned nixpkgs path.
|
||||
# This is for invoking `cargo bench` imperatively on the developer machine.
|
||||
# For tvix benchmarking across longer periods of time (by CI), we probably
|
||||
# should also benchmark with a more static nixpkgs checkout, so nixpkgs
|
||||
# refactorings are not observed as eval perf changes.
|
||||
shellHook = ''
|
||||
export TVIX_BENCH_NIX_PATH=nixpkgs=${pkgs.path}
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue