Goベンチマークの読み方(CPU編)
以下の記事に書かれていた話をまとめる。Goベンチマークの読み方(メモリ編)やpprofの読み方もある。
go test -bench= の出力を読む。
$ go test -bench=.goos: linuxgoarch: amd64pkg: github.com/willemschots/benchmarkfuncpu: 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHzBenchmark_example-8 36128 45894 ns/opPASSok github.com/willemschots/benchmarkfun 1.997sここで、最初の4つはベンチ実行環境の情報を出力している。それ以降は各ベンチマーク関数の数だけ結果が記録されていく。
Benchmark_example-8 36128 45894 ns/opこのフォーマットは、
- ベンチマーク関数名
- (8ってなんだっけ)
- 実行回数
- 1回あたりの平均実行時間(ナノ秒)
複数のベンチマーク結果を比較するときはbenchstatとbenchcmpを使う。