README

Go performance measurement, storage, and analysis tools

Go Reference

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=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.

Download/Install

The easiest way to install is to run go get golang.org/x/perf/cmd/.... You can also manually git clone the repository and run go install ./cmd/....

Report Issues / Send Patches

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.

Expand ▾ Collapse ▴

Directories

Path Synopsis
analysis
app
Package app implements the performance data analysis server.
Package app implements the performance data analysis server.
appengine
This binary contains an App Engine app for perf.golang.org
This binary contains an App Engine app for perf.golang.org
localperf
Localperf runs an HTTP server for benchmark analysis.
Localperf runs an HTTP server for benchmark analysis.
cmd
benchsave
Benchsave uploads benchmark results to a storage server.
Benchsave uploads benchmark results to a storage server.
benchstat
Benchstat computes and compares statistics about benchmarks.
Benchstat computes and compares statistics about benchmarks.
Package storage contains a client for the performance data storage server.
Package storage contains a client for the performance data storage server.
app
Package app implements the performance data storage server.
Package app implements the performance data storage server.
appengine
This binary contains an App Engine app for perfdata.golang.org
This binary contains an App Engine app for perfdata.golang.org
benchfmt
Package benchfmt provides readers and writers for the Go benchmark format.
Package benchfmt provides readers and writers for the Go benchmark format.
db
Package db provides the high-level database interface for the storage app.
Package db provides the high-level database interface for the storage app.
db/sqlite3
Package sqlite3 provides the sqlite3 driver for x/perf/storage/db.
Package sqlite3 provides the sqlite3 driver for x/perf/storage/db.
fs
Package fs provides a backend-agnostic filesystem layer for storing performance results.
Package fs provides a backend-agnostic filesystem layer for storing performance results.
fs/gcs
Package gcs implements the fs.FS interface using Google Cloud Storage.
Package gcs implements the fs.FS interface using Google Cloud Storage.
fs/local
Package local implements the fs.FS interface using local files.
Package local implements the fs.FS interface using local files.
localperfdata
Localperfdata runs an HTTP server for benchmark storage.
Localperfdata runs an HTTP server for benchmark storage.
query
Package query provides tools for parsing a query.
Package query provides tools for parsing a query.
internal
basedir
Package basedir finds templates and static files associated with a binary.
Package basedir finds templates and static files associated with a binary.
stats
Package stats implements several statistical distributions, hypothesis tests, and functions for descriptive statistics.
Package stats implements several statistical distributions, hypothesis tests, and functions for descriptive statistics.