On Sat, Oct 19, 2019 at 10:17 PM Nidhi Agrawal <nidhi11...@gmail.com> wrote: > > > https://golang.org/src/runtime/mprof.go, > https://golang.org/pkg/net/http/pprof/ here it is mentioned that we need to > set SetBlockProfileRate to get enable block profile. > > In case of block profiling if I set rate just before profiling and reset it > to 0 after profiling i am not getting any data. > > I am doing something like: > SetBlockProfileRate(1) > pprof.Lookup("block").WriteTo(f, 0); > SetBlockProfileRate(0)
If that is exactly what you are doing, then that doesn't work for CPU profiling either. You need to call SetBlockProfileRate, then do some work, then fetch the profile. Ian > On Sun, Oct 20, 2019 at 10:24 AM Ian Lance Taylor <i...@golang.org> wrote: >> >> On Sat, Oct 19, 2019 at 7:34 PM Nidhi Agrawal <nidhi11...@gmail.com> wrote: >> > >> > We don't need to set MemProfileRate. It is about block and mutex profiling >> > where we need to set the rate (SetBlockProfileRate, >> > SetMutexProfileFraction) at application start. Is there any performance >> > impacts of doing that ? >> > >> > It is not causing any issue we want to enable block and mutex profiling so >> > i am thinking if we can do something like >> > SetBlockProfileRate(1) >> > pprof.Lookup("block").WriteTo(f, 0); >> > sleep(20) >> > SetBlockProfileRate(0) >> > just like how cpu and trace profile works. But i am curious why isn't it >> > not already done in the library. What can be the reason behind this? >> > >> > I am curious why they are different from cpu and trace profiling, trying >> > to understand the inner working of this. It would be really helpful if you >> > can give me some pointers on where i can read about the high level design >> > of the pprof. >> >> Oh, sorry, I misread what you were asking. But now I'm not sure what >> you are asking. You said >> >> > On the other hand for mutex and block profiling, it expects us to set the >> > rate at the start of the application and while calling profiling, it just >> > gathers the information and return. >> >> That's how memory profiling works. You don't have to set the mutex >> and profiling rates at the start of the application. You can set them >> when you want to start profiling, as you suggest. Is there some >> documentation that says otherwise? >> >> Sorry, I don't know of any documentation describing the profiling >> implementation. >> >> Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXPEK3TKqs-QiLQOxtdUGQO6nyzDDkODyDEWqN0C%3Df99w%40mail.gmail.com.