commit | f944feb6ed2a3c92fe58cd967c391b367715873c | [log] [tgz] |
---|---|---|
author | Austin Clements <austin@google.com> | Wed Jan 13 13:56:41 2021 -0500 |
committer | Austin Clements <austin@google.com> | Thu Mar 17 01:27:09 2022 +0000 |
tree | aa28852f4440701fcd32b85025a76eee707fdb62 | |
parent | af31a76731725f4850083dc6a181043ec240186e [diff] |
benchproc: new package for high-level benchmark processing This provides a transform/filter/projection processing model for working with benchmark results, and mini-languages for constructing filters and projections. This model is the result of quite a bit of experimentation, and at this point I've built three tools on top of this package, so I consider it reasonably well validated. This also introduces a benchproc/syntax package, akin to the regexp/syntax package. The syntax package documents the syntax and provides low-level parsers for filter and projection expressions. If we ever port the web UI over to this, this will make it easy to transform these expressions into database filters. This requires updating the language version in go.mod to 1.13 because benchproc uses binary literals and signed shifts. Change-Id: If9da95ec1e583594644c123f3bc3fc377a0e97e5 Reviewed-on: https://go-review.googlesource.com/c/perf/+/283617 Trust: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
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 install golang.org/x/perf/storage/localperfdata@latest go install golang.org/x/perf/analysis/localperf@latest localperfdata -addr=:8081 -view_url_base=http://localhost:8080/search?q=upload: & localperf -addr=:8080 -storage=http://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.
The easiest way to install is to run go install golang.org/x/perf/cmd/...@latest
. You can also manually git clone the repository and run go install golang.org/x/perf/cmd/...
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the perf repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/perf:” in the subject line, so it is easy to find.