Goベンチマークの読み方(メモリ編)
This content is a draft and will not be included in production builds.
以下の記事に書かれていた話をまとめる。Goベンチマークの読み方(CPU編)やpprofの読み方もある。
go test -bench= の出力を読む。
$ go test -bench=. -benchmemgoos: linuxgoarch: amd64pkg: <packagename>cpu: 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHzBenchmark_example-8 35233 32910 ns/op 368641 B/op 2 allocs/opPASSok <packagename> 1.507sここで、最初の4つはベンチ実行環境の情報を出力している。それ以降は各ベンチマーク関数の数だけ結果が記録されていく。
Benchmark_example-8 35233 32910 ns/op 368641 B/op 2 allocs/opフォーマットは、Goベンチマークの読み方(CPU編)にメモリのフィールドが追加されただけ。
- ベンチマーク関数名
- (8ってなんだっけ)
- 実行回数
- 1回あたりの平均実行時間(ナノ秒)
- 1回あたりの平均メモリアロケーションサイズ
- 1回あたりの(平均?)アロケーション回数
複数のベンチマーク結果を比較するときはbenchstatとbenchcmpを使う。