Something went wrong. Try again.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#!/usr/bin/env sh#MISE description="Benchmark compile times using hyperfine"
set -e
RUNS="${RUNS:-3}"INCREMENTAL_RUNS="${INCREMENTAL_RUNS:-5}"
echo "=== Compile Time Benchmark ==="echo ""echo "System: $(uname -ms)"echo "Toolchain: $(rustc --version)"echo "Runs: ${RUNS} (clean), ${INCREMENTAL_RUNS} (incremental)"echo ""
echo "--- Clean builds ---"hyperfine \ --warmup 1 \ --runs "$RUNS" \ --prepare 'cargo clean' \ --command-name 'cargo check --workspace' 'cargo check --workspace' \ --command-name 'cargo build --workspace' 'cargo build --workspace' \ --command-name 'cargo test --workspace --no-run' 'cargo test --workspace --no-run' \ --command-name 'cargo build --workspace --release' 'cargo build --workspace --release'
echo ""echo "--- Incremental builds (touch src/main.rs — binary crate) ---"cargo build --workspace 2>/dev/nullhyperfine \ --warmup 1 \ --runs "$INCREMENTAL_RUNS" \ --prepare 'touch src/main.rs' \ --command-name 'cargo build --workspace' 'cargo build --workspace' \ --command-name 'cargo build --workspace --release' 'cargo build --workspace --release'
echo ""echo "--- Incremental builds (touch crates/error/src/lib.rs — leaf crate) ---"hyperfine \ --warmup 1 \ --runs "$INCREMENTAL_RUNS" \ --prepare 'touch crates/error/src/lib.rs' \ --command-name 'cargo build --workspace' 'cargo build --workspace' \ --command-name 'cargo build --workspace --release' 'cargo build --workspace --release'
echo ""echo "--- Incremental builds (touch crates/taskpaper/src/lib.rs — mid-tier crate) ---"hyperfine \ --warmup 1 \ --runs "$INCREMENTAL_RUNS" \ --prepare 'touch crates/taskpaper/src/lib.rs' \ --command-name 'cargo build --workspace' 'cargo build --workspace' \ --command-name 'cargo build --workspace --release' 'cargo build --workspace --release'