2019-09-04 19:53:54 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2020-09-01 14:01:23 +00:00
|
|
|
set -ex
|
2019-09-04 19:53:54 +00:00
|
|
|
|
|
|
|
reference_ref=${1:-master}
|
|
|
|
reference_git=${2:-.}
|
|
|
|
|
|
|
|
if ! `hash benchstat 2>/dev/null`; then
|
|
|
|
echo "Installing benchstat"
|
|
|
|
go get golang.org/x/perf/cmd/benchstat
|
|
|
|
fi
|
|
|
|
|
|
|
|
tempdir=`mktemp -d /tmp/go-toml-benchmark-XXXXXX`
|
|
|
|
ref_tempdir="${tempdir}/ref"
|
|
|
|
ref_benchmark="${ref_tempdir}/benchmark-`echo -n ${reference_ref}|tr -s '/' '-'`.txt"
|
|
|
|
local_benchmark="`pwd`/benchmark-local.txt"
|
|
|
|
|
|
|
|
echo "=== ${reference_ref} (${ref_tempdir})"
|
|
|
|
git clone ${reference_git} ${ref_tempdir} >/dev/null 2>/dev/null
|
|
|
|
pushd ${ref_tempdir} >/dev/null
|
|
|
|
git checkout ${reference_ref} >/dev/null 2>/dev/null
|
|
|
|
go test -bench=. -benchmem | tee ${ref_benchmark}
|
2020-09-22 17:02:16 +00:00
|
|
|
cd benchmark
|
|
|
|
go test -bench=. -benchmem | tee -a ${ref_benchmark}
|
2019-09-04 19:53:54 +00:00
|
|
|
popd >/dev/null
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "=== local"
|
|
|
|
go test -bench=. -benchmem | tee ${local_benchmark}
|
2020-09-22 17:02:16 +00:00
|
|
|
cd benchmark
|
|
|
|
go test -bench=. -benchmem | tee -a ${local_benchmark}
|
2019-09-04 19:53:54 +00:00
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "=== diff"
|
2020-09-01 14:01:23 +00:00
|
|
|
benchstat -delta-test=none ${ref_benchmark} ${local_benchmark}
|