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