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