about summary refs log tree commit diff
path: root/tvix/scripts/bench-windtunnel.sh
diff options
context:
space:
mode:
authorAspen Smith <root@gws.fyi>2023-12-14T19·21-0500
committergrfn <grfn@gws.fyi>2023-12-14T19·34+0000
commit1d678bab5f760b9141feefeacf4a27f72ae1adbd (patch)
treeb91b0ac943d68d4c261477a768641b065912f6a5 /tvix/scripts/bench-windtunnel.sh
parente4d6d20aa7edf82a741b349b520242cd7381aa2e (diff)
fix(tvix): Fix tvix nixpkgs eval benchmark r/7220
Fix the nixpkgs eval hyperfine benchmark in tvix/scripts.bench.sh to:

- Eval both a pinned (never-changing) nixpkgs commit and the nixpkgs
  commit used by the depot
- Not depend on fetchTarball, which is not yet implemented.
- Be called bench-windtunnel.sh

Change-Id: Id2ae18f983ab7327625320b5b16c082ecc369a49
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10364
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/scripts/bench-windtunnel.sh')
-rwxr-xr-xtvix/scripts/bench-windtunnel.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/tvix/scripts/bench-windtunnel.sh b/tvix/scripts/bench-windtunnel.sh
new file mode 100755
index 000000000000..894d5ba97e0d
--- /dev/null
+++ b/tvix/scripts/bench-windtunnel.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash ../.. -A tvix.shell
+
+# Benchmark script that runs inside the Windtunnel build agent
+
+set -euo pipefail
+
+echo "Running benchmarks for tvix/eval..."
+pushd "$(dirname "$(dirname "$0")")/eval"
+cargo bench
+windtunnel-cli report -f criterion-rust .
+popd
+
+echo "Running tvix macrobenchmarks..."
+pushd "$(dirname "$(dirname "$0")")"
+
+depot_nixpkgs_path="$(nix eval --raw '("${((import ../third_party/sources {}).nixpkgs)}")')"
+pinned_nixpkgs_path="$(nix eval --raw '(builtins.fetchTarball {url = "https://github.com/NixOS/nixpkgs/archive/91050ea1e57e50388fa87a3302ba12d188ef723a.tar.gz"; sha256 = "1hf6cgaci1n186kkkjq106ryf8mmlq9vnwgfwh625wa8hfgdn4dm";})')"
+
+cargo build --release --bin tvix
+hyperfine --export-json ./results.json \
+    -n 'tvix-eval-depot-nixpkgs-hello' "target/release/tvix -E '(import ${depot_nixpkgs_path} {}).hello.outPath'" \
+    -n 'tvix-eval-depot-nixpkgs-cross-hello' "target/release/tvix -E '(import ${depot_nixpkgs_path} {}).pkgsCross.aarch64-multiplatform.hello.outPath'" \
+    -n 'tvix-eval-pinned-nixpkgs-hello' "target/release/tvix -E '(import ${pinned_nixpkgs_path} {}).hello.outPath'" \
+    -n 'tvix-eval-pinned-nixpkgs-cross-hello' "target/release/tvix -E '(import ${pinned_nixpkgs_path} {}).pkgsCross.aarch64-multiplatform.hello.outPath'" \
+windtunnel-cli report -f hyperfine-json ./results.json
+popd