commit | c932945851e32cfac81a8556479d59f053297364 | [log] [tgz] |
---|---|---|
author | Austin Clements <austin@google.com> | Fri Jan 08 21:03:30 2021 -0500 |
committer | Austin Clements <austin@google.com> | Wed Mar 16 19:47:06 2022 +0000 |
tree | 9f3da672fbbc72e0a882811e0170b254ae82f080 | |
parent | ecd6f900f93034f56d2bd74bd4b0a37514f2b7df [diff] |
benchfmt: new benchmark parsing package This adds a new package for parsing the Go benchmark format. In contrast with the storage/benchfmt package, which this deprecates, the new package is a complete implementation of the format including parsing file-level configuration, benchmark lines, and benchmark names. This is the beginning of a substantial redesign of the perf module, which will culminate in a new benchstat that's substantially more featureful and modular. These new packages can live next to the existing packages, so it's not necessary to introduce a v2 of this module. The benchfmt API is designed for streaming use and expects the calling package to transform the results into some other representation. One such representation is coming in a following CL. The reader API is also designed to process millions of records per second on a typical laptop. This may seem unnecessary, but we've seen data volumes like this in practice. Change-Id: Ic5af0e936cf75da29372c2bb5747886f11ac7661 Reviewed-on: https://go-review.googlesource.com/c/perf/+/283614 Trust: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: David Chase <drchase@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.