Tool for running benchmark comparison of 2 commits (#2161)
parent
126865e8df
commit
ac6ff67546
@ -0,0 +1,67 @@ |
||||
#!/bin/bash |
||||
|
||||
# usage: ./benchcmp.sh <commit-sha1> <commit-sha2> |
||||
# Exit on any non zero return value on execution of a command. |
||||
set -e |
||||
|
||||
# path of benchcmp. |
||||
benchcmp=${GOPATH}/bin/benchcmp |
||||
|
||||
# function which runs the benchmark comparison. |
||||
RunBenchCmp () { |
||||
# Path for storing output of benchmark at commit 1. |
||||
commit1Bench=/tmp/minio-$1.bench |
||||
# Path for storing output of benchmark at commit 2. |
||||
commit2Bench=/tmp/minio-$2.bench |
||||
# switch to commit $1. |
||||
git checkout $1 |
||||
# Check if the benchmark results for given commit 1 already exists. |
||||
# Benchmarks are time/resource consuming operations, run only if the the results doesn't exist. |
||||
if [[ ! -f $commit1Bench ]] |
||||
then |
||||
|
||||
echo "Running benchmarks at $1" |
||||
go test -run=NONE -bench=. | tee $commit1Bench |
||||
fi |
||||
# get back to the commit from which it was started. |
||||
git checkout - |
||||
echo "Checking into commit $2" |
||||
# switch to commit $2 |
||||
git checkout $2 |
||||
# Check if the benchmark results for given commit 2 already exists. |
||||
# Benchmarks are time/resource consuming operations, run only if the the results doesn't exist. |
||||
if [[ ! -f $commit2Bench ]] |
||||
then |
||||
# Running benchmarks at $2. |
||||
echo "Running benchmarks at $2" |
||||
go test -run=NONE -bench=. | tee $commit2Bench |
||||
fi |
||||
|
||||
# get back to the commit from which it was started. |
||||
git checkout - |
||||
# Comparing the benchmarks. |
||||
echo "Running benchmark comparison between $1 and $2 ..." |
||||
$benchcmp $commit1Bench $commit2Bench |
||||
echo "Done." |
||||
} |
||||
|
||||
# check if 2 commit SHA's of snapshots of code for which benchmp has to be done is provided. |
||||
if [ ! $# -eq 2 ] |
||||
then |
||||
# exit if commit SHA's are not provided. |
||||
echo $# |
||||
echo "Need Commit SHA's of 2 snapshots to be supplied to run benchmark comparision." |
||||
exit 1 |
||||
fi |
||||
|
||||
# check if benchcmp exists. |
||||
if [[ -x "$benchcmp" ]] |
||||
then |
||||
RunBenchCmp $1 $2 |
||||
else |
||||
# install benchcmp if doesnt't exist. |
||||
echo "fetching Benchcmp..." |
||||
go get -u golang.org/x/tools/cmd/benchcmp |
||||
echo "Done." |
||||
RunBenchCmp $1 $2 |
||||
fi |
Loading…
Reference in new issue