bench.sh (859B)
1 #!/usr/bin/env bash 2 3 # allow user to override go executable by running as GOEXE=xxx make ... 4 GOEXE="${GOEXE-go}" 5 6 # Convenience script to 7 # - For a given branch 8 # - Run benchmark tests for a given package 9 # - Do the same for master 10 # - then compare the two runs with benchcmp 11 12 benchFilter=".*" 13 14 if (( $# < 2 )); 15 then 16 echo "USAGE: ./bench.sh <git-branch> <package-to-bench> (and <benchmark filter> (regexp, optional))" 17 exit 1 18 fi 19 20 21 22 if [ $# -eq 3 ]; then 23 benchFilter=$3 24 fi 25 26 27 BRANCH=$1 28 PACKAGE=$2 29 30 git checkout $BRANCH 31 "${GOEXE}" test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-$BRANCH.txt 32 33 git checkout master 34 "${GOEXE}" test -test.run=NONE -bench="$benchFilter" -test.benchmem=true ./$PACKAGE > /tmp/bench-$PACKAGE-master.txt 35 36 37 benchcmp /tmp/bench-$PACKAGE-master.txt /tmp/bench-$PACKAGE-$BRANCH.txt