Benchmarks for the perf dashboard
Перейти к файлу
Michael Anthony Knyszek 9e5447a4e4 cmd/bench: add -pgo flag
This change adds a flag to cmd/bench to do a few runs to collect
profiles and feed that back into the build before doing measured
benchmark runs.

This mode is only supported in Sweet to begin with.

Change-Id: I483ca5d5385b341dee4038641e16e02f2ce3493d
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/594776
Auto-Submit: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-11-05 21:53:45 +00:00
build
cmd cmd/bench: add -pgo flag 2024-11-05 21:53:45 +00:00
driver
garbage
gc_latency
http
json
stats
sweet
third_party
.gitignore
CONTRIBUTING.md
LICENSE
PATENTS
README
codereview.cfg
go.mod
go.sum

README

This subrepository holds macro-benchmarks used for Go performance
development and monitoring.

Each benchmark is compiled into a separate binary. To build and
install them all in the current directory, execute:

	$ GOBIN=$PWD go get golang.org/x/benchmarks/...

To run a benchmark, simply execute its binary.

Each binary has a number of flags to control benchmark duration, etc.
Run with '-help' to get the full list of flags.

When the benchmarking finishes, the binary prints results in the
standard Go benchmark format [1]:

	$ garbage
	BenchmarkGarbage/benchmem-MB=64-4     2000	   6443223 ns/op	   6008832 GC-bytes-from-system	    230521 STW-ns/GC	     15329 STW-ns/op	   2780501 allocated-bytes/op	     68636 allocs/op	 119041368 bytes-from-system	 104202240 heap-bytes-from-system	   8109400 other-bytes-from-system	 112427008 peak-RSS-bytes	 121511936 peak-VM-bytes	    720896 stack-bytes-from-system	  25194000 user+sys-ns/op

This format can be processed by tools like benchstat
(https://golang.org/x/perf/cmd/benchstat) and benchplot
(https://godoc.org/github.com/aclements/go-misc/benchplot).

Required extra tools:
  For Linux, you need "perf". On Debian/Ubuntu, you can install
  package "perf-tools-common" to get it. Run "perf" once with no
  arguments to check if it requires additional packages to be installed.

To submit changes to this repository, see http://golang.org/doc/contribute.html.

[1] https://github.com/golang/proposal/blob/master/design/14313-benchmark-format.md