Skip to content

Goベンチマークの読み方(CPU編)

以下の記事に書かれていた話をまとめる。Goベンチマークの読み方(メモリ編)pprofの読み方もある。

go test -bench= の出力を読む。

Terminal window
$ go test -bench=.
goos: linux
goarch: amd64
pkg: github.com/willemschots/benchmarkfun
cpu: 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHz
Benchmark_example-8 36128 45894 ns/op
PASS
ok github.com/willemschots/benchmarkfun 1.997s

ここで、最初の4つはベンチ実行環境の情報を出力している。それ以降は各ベンチマーク関数の数だけ結果が記録されていく。

Benchmark_example-8 36128 45894 ns/op

このフォーマットは、

  1. ベンチマーク関数名
  2. (8ってなんだっけ)
  3. 実行回数
  4. 1回あたりの平均実行時間(ナノ秒)

複数のベンチマーク結果を比較するときはbenchstatとbenchcmpを使う。