Analyzers
Support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
4645 Discussions

Problem assessing the time spend in functions, Call graph profiling very slow

thijse
Beginner
153 Views

I have trouble accurately assessing the time spend in vital classes and functions in our code. The program is compiled in VC++6 and runs multi-threaded on a 2 CPU, dual core Dell 690.

The call graph option "Total Time" seems to be exactly what I want, but profiling based on call graphs slows my program down immensly. That is, execution time of the whole program goes from 74 s to 589 s, which makes the time spend in the individual functions also inaccurate. Is this normal behaviour and if so, is there another manner in which to get this data accurately?


0 Kudos
2 Replies
TimP
Black Belt
153 Views
Plain Event Based Sampling appears to be what you are asking for. The point of call graph is to find out who calls whom how often. I doubt it is well suited for threaded profiling. It is documented as an inaccurate way to measure performance, although it wouldn't usually be as bad as in your case.
David_A_Intel1
Employee
153 Views
thijse:

The VTune analyzer attempts to subtract the overhead from the timing information for each function. The real usage model for the call graph time, however, is for comparison purposes between functions within the data collection.

Sampling is a very low overhead data collection mechanism, but it will not give you calling relationships. That information is costly to collection and will always add overhead.

Reply