|
From: Mohamed M. <man...@gm...> - 2007-11-07 00:44:08
|
Hi, I am using cachegrind to measure bottlenecks for a C++ process. This process is part of a distributed system and in the course of fulfilling a request it will make one or more blocking remote calls. Does cachegrind include the blocking times in the numbers it reports? These are the options I start with: --simulate-cache=no --tool=callgrind --instr-atstart=no Thanks, Mohamed |
|
From: Josef W. <Jos...@gm...> - 2007-11-07 10:50:20
|
On Wednesday 07 November 2007, Mohamed Mansour wrote: > Hi, > > I am using cachegrind to measure bottlenecks for a C++ process. This process > is part of a distributed system and in the course of fulfilling a request it > will make one or more blocking remote calls. > > Does cachegrind include the blocking times in the numbers it reports? No. Use system wide sampling to get an idea what happens in the system. Blocking time waiting on an external event probably will show up as part of the kernel idle loop. Josef PS: You can check out --collect-systime=yes with callgrind to get event numbers for wall clock time spent in system calls. You will get 2 new events: "sysCount" for the number of system calls executed, and "sysTime" for the number of milliseconds spent in the system calls. However, you should be very careful when interpreting these numbers. > > > These are the options I start with: > --simulate-cache=no > --tool=callgrind > --instr-atstart=no > > > Thanks, > Mohamed > |
|
From: Mohamed M. <man...@gm...> - 2007-11-07 14:53:58
|
Thanks for the reply. I was actually looking for collecting UserTime sampling only, so this works great for me. -- Mohamed On Nov 7, 2007 2:50 AM, Josef Weidendorfer <Jos...@gm...> wrote: > On Wednesday 07 November 2007, Mohamed Mansour wrote: > > Hi, > > > > I am using cachegrind to measure bottlenecks for a C++ process. This > process > > is part of a distributed system and in the course of fulfilling a > request it > > will make one or more blocking remote calls. > > > > Does cachegrind include the blocking times in the numbers it reports? > > No. > Use system wide sampling to get an idea what happens in the system. > Blocking time waiting on an external event probably will show up as part > of the kernel idle loop. > > Josef > > PS: You can check out --collect-systime=yes with callgrind to get event > numbers > for wall clock time spent in system calls. You will get 2 new events: > "sysCount" > for the number of system calls executed, and "sysTime" for the number of > milliseconds spent in the system calls. However, you should be very > careful > when interpreting these numbers. > > > > > > > These are the options I start with: > > --simulate-cache=no > > --tool=callgrind > > --instr-atstart=no > > > > > > Thanks, > > Mohamed > > > > > |
|
From: Nicholas N. <nj...@cs...> - 2007-11-07 21:06:41
|
On Wed, 7 Nov 2007, Mohamed Mansour wrote: > Thanks for the reply. I was actually looking for collecting UserTime > sampling only, so this works great for me. Any numbers reported by Callgrind (which is different to Cachegrind) will be very approximate only. Nick |