Help us shape the future of Go! Take the 2026 Go Developer Survey

abbench

command
v0.68.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: BSD-3-Clause Imports: 14 Imported by: 0

Documentation

Overview

Command abbench runs two Go test binaries alternately, base then head, for N rounds with the same arguments, and appends each run's stdout to <out>/base.txt and <out>/head.txt, so that

benchstat base.txt head.txt

compares them. It exists because two benchmarks run one after the other measure the host's load drift as much as the code: a neighbour starting a job between the two blocks shows up as a regression. Alternating the runs spreads the drift over both sides.

abbench --base ./b.test --head ./h.test --rounds 8 --cpu 5 -- \
    -test.run '^$' -test.bench 'X' -test.count 1

It is pure Go with no cgo, so it cross-compiles for every GOOS/GOARCH and is copied to the remote benchmark hosts like hostload.

⛔ A child that fails STOPS the run. A benchmark series with a hole in it is not a smaller series, it is a biased one, and benchstat would compare it without a word. The binary, the round and the child's stderr are printed and the status is 1.

The binaries are executed directly from an argv, never through a shell.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL