github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/scripts/bench (about)

     1  #!/bin/bash
     2  set -euo pipefail
     3  
     4  if ! which benchstat > /dev/null; then
     5    cat 1>&2 <<EOF
     6  Requires github.com/cockroachdb/benchstat
     7  Run:
     8    go get github.com/cockroachdb/benchstat
     9  EOF
    10    exit 1
    11  fi
    12  
    13  cd "$(dirname $0)/.."
    14  if [[ $# < 1 || $# > 2 ]]; then
    15    cat 1>&2 <<EOF
    16  Usage: BENCHES=regexp PKG=./pkg/yourpkg $0 oldbranch [newbranch]
    17  EOF
    18    exit 1
    19  fi
    20  
    21  OLDNAME=$1
    22  OLD=$(git rev-parse "$1")
    23  
    24  ORIGREF=$(git symbolic-ref -q HEAD)
    25  ORIG=${ORIGREF##refs/heads/}
    26  
    27  if [[ $# < 2 ]]; then
    28    NEWNAME="HEAD"
    29    NEW=$ORIG
    30  else
    31    NEWNAME=$2
    32    NEW=$(git rev-parse "$2")
    33  fi
    34  
    35  echo "Comparing $NEWNAME (new) with $OLDNAME (old)"
    36  echo ""
    37  
    38  dest=$(mktemp -d)
    39  echo "Writing to ${dest}"
    40  
    41  shas=($OLD $NEW)
    42  names=($OLDNAME $NEWNAME)
    43  
    44  for (( i=0; i<${#shas[@]}; i+=1 )); do
    45    name=${names[i]}
    46    sha=${shas[i]}
    47    echo "Switching to $name"
    48    git checkout -q "$sha"
    49    (set -x; make bench PKG="${PKG}" BENCHTIMEOUT="${BENCHTIMEOUT:-5m}" BENCHES="${BENCHES}" TESTFLAGS="-count 10 -benchmem" > "${dest}/bench.${name}" 2> "${dest}/log.txt")
    50  done
    51  benchstat "${dest}/bench.$OLDNAME" "${dest}/bench.$NEWNAME"
    52  
    53  git checkout "$ORIG"