benchstat, cmd/benchstat: group benchmark results

Go 1.9 and up write "pkg", "goos", and "goarch" keys in benchmark
output. benchstat now understands benchmark labels, and uses them to
separate incomparable benchmark results. cmd/benchstat gains a
command-line flag called "-split" to control this, defaulting to
"pkg,goos,goarch".

Change-Id: I00413ab348bbff31743b59e81d88c4faab1a8dca
Reviewed-on: https://go-review.googlesource.com/38584
Run-TryBot: Quentin Smith <quentin@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
13 files changed
tree: d96d7784447a059ee7f0f2513044d212509a7b50
  1. AUTHORS
  2. CONTRIBUTING.md
  3. CONTRIBUTORS
  4. LICENSE
  5. PATENTS
  6. README.md
  7. analysis/
  8. benchstat/
  9. cmd/
  10. internal/
  11. storage/
  12. vendor/
README.md

Go performance measurement, storage, and analysis tools

This subrepository holds the source for various packages and tools related to performance measurement, storage, and analysis.

cmd/benchstat contains a command-line tool that computes and compares statistics about benchmarks.

cmd/benchsave contains a command-line tool for publishing benchmark results.

storage contains the https://perfdata.golang.org/ benchmark result storage system.

analysis contains the https://perf.golang.org/ benchmark result analysis system.

Both storage and analysis can be run locally; the following commands will run the complete stack on your machine with an in-memory datastore.

go get -u golang.org/x/perf/storage/localperfdata
go get -u golang.org/x/perf/analysis/localperf
localperfdata -addr=:8081 -view_url_base=http://localhost:8080/search?q=upload: &
localperf -addr=:8080 -storage=localhost:8081

The storage system is designed to have a standardized API, and we encourage additional analysis tools to be written against the API. A client can be found in the storage package.


Contributions to Go are appreciated. See http://golang.org/doc/contribute.html.