Callgrind performance analysis with cycle detection

Viewed 3424

I'm trying to use Callgrind/Kcachegrind for the first time to profile my C++ application and what I noticed is that the two functions that take more time are:

  1. < cycle 1 > (50% self) and
  2. do_lookup_x (15% self)

Now, from my understanding cycle 1 is related to the estimation of the time taken by recursively called functions, but it is not very clear to me how I should interpret a so high time spent here. If there are some cycles, I would like to see which function is called more often and take more CPU time at the end. If I disable Cycle Detection (View->Cycle Detection), then cycle 1 disappears but the "Self" time sum up to roughly 60%, and I'm not sure this is the best thing to do. Regarding do_lookup_x I'm totally clueless...

Can you clarify me a bit how should I interpret these results?

Thanks in advance.

2 Answers
Related