wifi-densepose/vendor/midstream/scripts/benchmark_comparison.sh

66 lines
1.5 KiB
Bash

#!/bin/bash
# Compare benchmark results between two git branches
# Usage: ./benchmark_comparison.sh <baseline-branch> <feature-branch>
set -e
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'
BASELINE_BRANCH="${1:-main}"
FEATURE_BRANCH="${2:-$(git branch --show-current)}"
echo "📊 Benchmark Comparison Tool"
echo "============================"
echo ""
echo "Baseline: $BASELINE_BRANCH"
echo "Feature: $FEATURE_BRANCH"
echo ""
# Save current branch
CURRENT_BRANCH=$(git branch --show-current)
# Function to run benchmarks on a branch
run_benchmarks_on_branch() {
local branch=$1
local baseline_name=$2
echo -e "${YELLOW}Checking out $branch...${NC}"
git checkout "$branch"
echo -e "${YELLOW}Building $branch...${NC}"
cargo build --release --all-features
echo -e "${YELLOW}Running benchmarks on $branch...${NC}"
cargo bench --all -- --save-baseline "$baseline_name"
echo -e "${GREEN}✓ Benchmarks for $branch completed${NC}"
echo ""
}
# Run benchmarks on baseline
run_benchmarks_on_branch "$BASELINE_BRANCH" "baseline"
# Run benchmarks on feature branch
run_benchmarks_on_branch "$FEATURE_BRANCH" "feature"
# Compare results
echo -e "${YELLOW}Generating comparison...${NC}"
# Return to original branch
git checkout "$CURRENT_BRANCH"
# Run comparison
cargo bench --all -- --baseline baseline
echo ""
echo -e "${GREEN}Comparison complete!${NC}"
echo ""
echo "Results:"
echo " - Baseline: $BASELINE_BRANCH"
echo " - Feature: $FEATURE_BRANCH"
echo " - Reports: target/criterion/*/report/index.html"
echo ""