Performance measurement, storage, and analysis.

Clone this repo:


  1. 638b204 all: add build tags to ignore things using sqlite on plan9 by Brad Fitzpatrick · 2 weeks ago master
  2. a4c2694 storage/app: fix fmt format errors causing vet failures during test by Brad Fitzpatrick · 2 weeks ago
  3. 4469e6c README: add more links/information by Kevin Burke · 5 months ago
  4. 4979bd1 analysis/app: add "commit" tooltip to trend by Tamir Duberstein · 5 months ago
  5. ae5bfa6 benchstat: don't print sign for 0% when there is no change by Josh Bleecher Snyder · 7 months ago

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 benchmark result storage system.

analysis contains the 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
go get -u
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 get -u You can also manually git clone the repository to $GOPATH/src/

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the perf repository is located at Prefix your issue with “x/perf:” in the subject line, so it is easy to find.