| commit | 1ba3a21238c9e308852cbb55abe60f125eed789f | [log] [tgz] |
|---|---|---|
| author | Michael Pratt <mpratt@google.com> | Mon Jul 17 14:37:29 2023 -0400 |
| committer | Gopher Robot <gobot@golang.org> | Mon Jul 17 20:30:22 2023 +0000 |
| tree | 7a45424e1586021ea4f742f6468d38ccdf1a94c2 | |
| parent | d343f6398b76b4b9dc5a6a8c67d301d7e7eccf9b [diff] |
benchseries: ignore results with mismatched compare value Currently, benchseries assumes that results with compare value == denominator is in the denominator set, and everything else is in the numerator. In addition to being confusing (BuilderOptions.Numerator is completely ignored), this breaks things when the compare key isn't set at all. In that case cmpCfg.StringValues() is always "", so everything ends up in the numerator and nothing in the denominator, which causes a later crash due to a missing denominator [1]. Be more explicit and only save results that explicitly fall into the numerator or denominator. [1] This fix isn't perfect, as benchmark results that contain only numerator results and no denominator results will still cause a crash. That should probably be an error or simply result in no comparisons. For golang/go#61362. Change-Id: I1444d0fcb101bcea0f1cdf31de7292211dcbc901 Reviewed-on: https://go-review.googlesource.com/c/perf/+/510475 TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Pratt <mpratt@google.com> Reviewed-by: David Chase <drchase@google.com>
This subrepository holds tools and packages for analyzing Go benchmark results, such as the output of testing package benchmarks.
This subrepository contains command-line tools for analyzing benchmark result data.
cmd/benchstat computes statistical summaries and A/B comparisons of Go benchmarks.
cmd/benchfilter filters the contents of benchmark result files.
cmd/benchsave publishes benchmark results to perf.golang.org.
To install all of these commands, run go install golang.org/x/perf/cmd/...@latest. You can also git clone https://go.googlesource.com/perf and run go install ./cmd/... in the checkout.
Underlying the above tools are several packages for working with benchmark data. These are designed to work together, but can also be used independently.
benchfmt reads and writes the Go benchmark format.
benchunit manipulates benchmark units and formats numbers in those units.
benchproc provides tools for filtering, grouping, and sorting benchmark results.
benchmath provides tools for computing statistics over distributions of benchmark measurements.
The following packages are deprecated and no longer supported:
storage contains a deprecated version of the https://perfdata.golang.org/ benchmark result storage system. These packages have moved to https://golang.org/x/build.
analysis contains a deprecated version of the https://perf.golang.org/ benchmark result analysis system. These packages have moved to https://golang.org/x/build.
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.