Test

Benchmark

関数名の接頭辞にBenchmarkをつけて*testing.Bを受け取る関数をつくるとベンチマークをとれる。
-benchmemでベンチマーク中のメモリの情報がとれる。

profileをとる

  • -cpuprofile [ファイルパス]: ベンチマーク中のCPUのプロファイルを取得し出力します。
  • -memprofile [ファイルパス]: ベンチマーク中のmemoryアロケーションのプロファイルを取得し出力します。
  • -trace [ファイルパス]: ベンチマーク中のtraceを取得し出力します。
  • -gcflags: gcコンパイラにわたすフラグを設定できる。-mを渡すと最適化の結果を確認できる。
go test -benchmem -cpuprofile pprof/cpu.out -memprofile pprof/mem.out -bench BenchmarkCtable github.com/showa-93/hashing/hashtable

取得したprofileをwebで参照する。

go tool pprof -http ":8080" pprof/cpu.out

参考