Profiling a compiled root macro


I’d like to do some time profiling on a root macro and found the howto “valgrind and ROOT”. I tried to follow the recipe by calling

valgrind --tool=callgrind --fn-skip=_dl_runtime_resolve_avx root.exe -l -b -q mymacro.C+

and got lengthy output called ‘callgrind.out.2269’. But I have no clue how to interprete the ouput. It has 665k lines output looking like this:

# callgrind format
version: 1
creator: callgrind-3.14.0
pid: 2269
cmd:  root.exe -l -b -q HepFastSimDemo.C+(5000,"phsp14_3.cfg","rndseed=123:hconf=450,3:savefig=fig/SimDemo14_D0_reset7.png")
part: 1

desc: I1 cache: 
desc: D1 cache: 
desc: LL cache: 

desc: Timerange: Basic block 0 - 7910139146
desc: Trigger: Program termination

positions: line
events: Ir
summary: 35786943301

ob=(2) ???
fl=(17) ???
fn=(1350) 0x00000000049d9f68
0 21382
cob=(13) /cvmfs/
cfi=(133) ???
cfn=(1352) ROOT::GetROOT()
calls=21382 0 
0 445488962

fn=(1351) 0x00000000049d9f68'2
0 1505
cfn=(1353) ROOT::GetROOT()'2
calls=1505 0 
0 12040

fn=(1614) 0x00000000049d9f60
0 363
cfn=(1616) TDirectory::CurrentDirectory()
calls=363 0 
0 2178

The macro is not stand-alone, but actually is using a set of classes in the same directory. Is this a problem, or did I do something wrong?


You can use a GUI to visualize the callgrind.out file, see for example:


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.