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.

Reply via email to