Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-21 Thread Nidhi Agrawal
Ok, Thanks. On Mon, Oct 21, 2019 at 5:42 PM Ian Lance Taylor wrote: > On Mon, Oct 21, 2019 at 4:38 AM Nidhi Agrawal > wrote: > > > > Ok, Also is there any harm if we set block/mutex rate at the start of > the program ? Will it cause any memory allocations or any kind of > performance impact? >

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-21 Thread Ian Lance Taylor
On Mon, Oct 21, 2019 at 4:38 AM Nidhi Agrawal wrote: > > Ok, Also is there any harm if we set block/mutex rate at the start of the > program ? Will it cause any memory allocations or any kind of performance > impact? It will cause some additional memory allocations as the program records profil

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-21 Thread Nidhi Agrawal
Ok, Also is there any harm if we set block/mutex rate at the start of the program ? Will it cause any memory allocations or any kind of performance impact? On Mon, Oct 21, 2019 at 2:47 PM Ian Lance Taylor wrote: > On Sun, Oct 20, 2019 at 8:57 PM Nidhi Agrawal > wrote: > > > > Implementation in

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-21 Thread Ian Lance Taylor
On Sun, Oct 20, 2019 at 8:57 PM Nidhi Agrawal wrote: > > Implementation in http/net/pprof library is leading me to conclude that they > are different. > Yes, In runtime/pprof block, mutex, cpu all are implemented in the same way, > but http/net/pprof is not using them in the same way. > In CPU p

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Nidhi Agrawal
Implementation in http/net/pprof library is leading me to conclude that they are different. Yes, In runtime/pprof block, mutex, cpu all are implemented in the same way, but http/net/pprof is not using them in the same way. In CPU profiling rate is set internally, while in block, mutex we are suppos

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Ian Lance Taylor
On Sun, Oct 20, 2019 at 12:51 AM Nidhi Agrawal wrote: > > I came to this conclusion because the pprof implemented the cpu with the > assumption that the client gives how much time to capture the profiling data. > but when it comes to the mutex and block, the pprof didn't implement it to > suppo

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Nidhi Agrawal
I came to this conclusion because the pprof implemented the cpu with the assumption that the client gives how much time to capture the profiling data. but when it comes to the mutex and block, the pprof didn't implement it to support this but asked the client to call the profile rate before calling

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Ian Lance Taylor
On Sun, Oct 20, 2019 at 12:36 AM Nidhi Agrawal wrote: > > Because it is explicitly written in the documentation here > https://golang.org/pkg/net/http/pprof/ that we should set block profile rate > at the start of application, unlike CPU profiling where the rate is being set > internally before

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Nidhi Agrawal
Because it is explicitly written in the documentation here https://golang.org/pkg/net/http/pprof/ that we should set block profile rate at the start of application, unlike CPU profiling where the rate is being set internally before profiling starts. As you said we can set the rate any time then si

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Ian Lance Taylor
On Sun, Oct 20, 2019 at 12:23 AM Nidhi Agrawal wrote: > > Ok, Is it necessary to call SetBlockProfileRate at the start of application? > If not then we can call it just before starting block profile and after block > profile interval (eg. 30 seconds) when profiling finishes then we can reset > i

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Nidhi Agrawal
Ok, Is it necessary to call SetBlockProfileRate at the start of application? If not then we can call it just before starting block profile and after block profile interval (eg. 30 seconds) when profiling finishes then we can reset it to 0. On Sun, Oct 20, 2019 at 12:48 PM Ian Lance Taylor wrote:

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-20 Thread Ian Lance Taylor
On Sat, Oct 19, 2019 at 10:17 PM Nidhi Agrawal 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 profi

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-19 Thread Nidhi Agrawal
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 a

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-19 Thread Ian Lance Taylor
On Sat, Oct 19, 2019 at 7:34 PM Nidhi Agrawal 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 no

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-19 Thread Nidhi Agrawal
HI Ian, 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 prof

Re: [go-nuts] Doubts regarding implementation of runtime profiler

2019-10-19 Thread Ian Lance Taylor
On Fri, Oct 18, 2019 at 11:03 PM Nidhi Agrawal wrote: > > Golang runtime profiler (for cpu & trace) gives us an option to decide the > time of profiling. It then sets the rate of profiling at start of the call > and reset the rate at the end of the call. So it goes like this > > CPUProfiling() {