|
|
@ -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 != "" { |
|
|
|