Files
wifi-densepose/vendor/ruvector/.claude/hooks/bench-runner.sh

96 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# Benchmark runner with baseline comparison for RuVector
# Integrates with criterion benchmarks and stores results
set -e
CRATE="${1:-all}"
BASELINE_DIR="/workspaces/ruvector/.claude-flow/metrics/benchmarks"
mkdir -p "$BASELINE_DIR"
cd /workspaces/ruvector
echo "📊 RuVector Benchmark Runner"
echo "============================"
echo ""
run_bench() {
local crate=$1
local bench_name=$2
local output_file="$BASELINE_DIR/${crate}-$(date +%Y%m%d-%H%M%S).json"
echo "🏃 Running: cargo bench -p $crate"
# Run benchmark and capture output
if cargo bench -p "$crate" -- --noplot 2>&1 | tee /tmp/bench-output.txt; then
# Extract timing info from criterion output
grep -E "time:" /tmp/bench-output.txt | head -10
# Store raw output
cp /tmp/bench-output.txt "$output_file.txt"
echo ""
echo "📁 Results saved to: $output_file.txt"
else
echo "⚠️ Benchmark failed for $crate"
fi
}
case "$CRATE" in
"all")
echo "Running all available benchmarks..."
echo ""
# Core benchmarks
if [ -d "crates/ruvector-bench" ]; then
run_bench "ruvector-bench" "core"
fi
# MinCut benchmarks
if [ -d "crates/ruvector-mincut" ]; then
run_bench "ruvector-mincut" "mincut"
fi
# Attention benchmarks
if [ -d "crates/ruvector-attention" ]; then
run_bench "ruvector-attention" "attention"
fi
;;
"core"|"ruvector-bench")
run_bench "ruvector-bench" "core"
;;
"mincut"|"ruvector-mincut")
run_bench "ruvector-mincut" "mincut"
;;
"attention"|"ruvector-attention")
run_bench "ruvector-attention" "attention"
;;
"graph"|"ruvector-graph")
run_bench "ruvector-graph" "graph"
;;
"quick")
echo "Running quick sanity benchmarks..."
cargo bench -p ruvector-bench -- --noplot "insert" 2>&1 | tail -10
;;
*)
echo "Usage: $0 [all|core|mincut|attention|graph|quick|<crate-name>]"
echo ""
echo "Available benchmark crates:"
echo " core/ruvector-bench - Core vector operations"
echo " mincut - Min-cut algorithms"
echo " attention - Attention mechanisms"
echo " graph - Graph operations"
echo " quick - Fast sanity check"
exit 1
;;
esac
echo ""
echo "✅ Benchmarks complete"
echo "📁 Results in: $BASELINE_DIR/"