add block and mutex profiling

This commit is contained in:
Chris Lu 2021-06-13 16:15:54 -07:00
parent 28a4a1f8d6
commit 7225cb4ac5

View file

@ -14,9 +14,30 @@ func SetupProfiling(cpuProfile, memProfile string) {
if err != nil {
glog.Fatal(err)
}
runtime.SetBlockProfileRate(1)
runtime.SetMutexProfileFraction(1)
pprof.StartCPUProfile(f)
OnInterrupt(func() {
pprof.StopCPUProfile()
// write block pprof
blockF, err := os.Create(cpuProfile+".block")
if err != nil {
return
}
p := pprof.Lookup("block")
p.WriteTo(blockF,0)
blockF.Close()
// write mutex pprof
mutexF, err := os.Create(cpuProfile+".mutex")
if err != nil {
return
}
p = pprof.Lookup("mutex")
p.WriteTo(mutexF,0)
mutexF.Close()
})
}
if memProfile != "" {